最近要写一个php小程序,需要对unicode编码的txt文档进行提取部分有用的文本,但是在读取文本的时候出现问题。
问题描述:
1、 我经过转码,把unicode转化为gbk, 只有第一行能转化成功!第二行都是不成功。 2、 把700m文件切割为4个txt文件,读一行写出一行,每80w行生成一个文本,只有第一个文档能正常生成,其他文本全 都是乱码。 求解决方法!
急急急急急急急急!!!
问题描述:
1、 我经过转码,把unicode转化为gbk, 只有第一行能转化成功!第二行都是不成功。 2、 把700m文件切割为4个txt文件,读一行写出一行,每80w行生成一个文本,只有第一个文档能正常生成,其他文本全 都是乱码。 求解决方法!
急急急急急急急急!!!
$fp = fopen("zzy.txt","r");
$fp1 = fopen("result1.txt","w+");
$preg = "#<LOC ADMIN_VAL.*?>(.*?)</LOC>#i";
$result1 = array();
$i=1;
$buf = "";
$splitChar = iconv("GBK", "UCS-2", "\r\n");
while(!feof($fp))
{
if($i==2)
exit;
$buf =trim(fread($fp,1000),$splitChar);
//echo $buf;
if($buf == "")
continue;
//$buf = iconv("UCS-2","GBK",$buf);
$i++;
preg_match_all($preg,$buf,$result);
echo $result[1][1]."\r\n";
fwrite($fp1, $result[1]);
}
fclose($fp);
fclose($fp1);
exec("split -l 10000 a.txt /tmp/txt/s_"); // 10000行切一个文件
iconv("gb2312", "utf-8", $str)
我在对700M文件进行操作时按行操作,然后unset掉那个变量(也许没必要),这样就解决了!