我一个数组A是繁体中文的,格式是0=>'',1='',数组B简体中文也一样,并且个数相同,有几千个吧? 当我替换一个文章字符串时,不是数组a中的两个相连的字变成了另一个字和一个字母,真不知道是什么原因,请各位帮帮忙。

解决方案 »

  1.   

    <?php
    $file = '../***.txt';
    $handle = fopen($file,'r');
    while(!feof($handle)) {
    $buffer = fgets($handle);
    $fan[] = substr($buffer,0,2);
    $jian[]= substr($buffer,2,2);


    }$path = '****';
    $file_cont = nl2br(file_get_contents($path));
    $file_cont = str_replace($fan, $jian, $file_cont);echo $file_cont;
    //print_r($fan);
    //print_r($jian);
      

  2.   

    str_replace 替换文字 数组 几千个... ... php 真累
      

  3.   

    $fan是繁体数组的意思,$jian是对应的简体字,‘邠邸’这两个字被替换成了叩А了,但$fan数组里根本就没有‘邠邸’这两个字
      

  4.   

    很奇怪啊。是否是你编码没统一的缘故?
    ***.txt ,**** 文件 编码要统一才符合逻辑
      

  5.   

    转换字符串为 utf-8 或 ucs-2 编码,替换后再转回来
      

  6.   

    $file_cont = iconv('gbk','utf-8',$file_cont);
    $file_cont = str_replace($fan, $jian, $file_cont);
    $file_cont = iconv('utf-8','gbk',$file_cont);
    echo $file_cont;
    我试了下,嘿,把一堆文字变成了两个文字,我对这块真的不通,以前没用过,大神,能给出代码吗?
      

  7.   

    你 $fan, $jian 也不转码吗
      

  8.   

    楼主用多字节版本 mb_ereg_replace
    能行吗?记住文章的编码要和mb_internal_encoding和源程序的编码要一致