作者Uihc (我 有我的倔强...)
看板Programming
标题[PHP] ereg_replace字串取代的结果有点怪异
时间Wed May 31 18:25:26 2006
hch1110(5).jsp是从网站经过查询产生页面,我把它下载到自己的电脑里
(其实一共有1177个类似的档案,这里就以这个做为例子)
程式的目的:
我想利用加入逗点(",")的方式,把文字处理过後读到excel整理成表格
程式逻辑说明:
在前面第一阶段的程式,我把html的tag和一些跳行及空白符号去除
产生company.txt,
接着第二阶段的程式,我根据需要的栏位加上逗点,例如统一编号或营利事业名称等等
然後产生final.txt
问题就在这里了,
例如: $line1 = ereg_replace('统一编号',',统一编号,',$line1);
我echo到网页看到的结果很正常 "xxxxx,统一编号,12345678xxxxx"
可是写入档案(final.txt)时却变成 "xxxxx,统一编号12345678,xxxxx"
其他像"核准设立日期"、"最近异动日期"、公司/行号联络电话"...等等
只要後面是有接数字的栏位(例:统一编号12345678)都有这个情形
所以想请教大家,这是ereg_replace的bug吗?
或是有什麽地方是我没注意到的呢?? 谢谢!!
为了除错好理解,所以把档案附上
读进来的档案:
http://www.rskl.geog.ntu.edu.tw/tgis/problem/hchl1110(5).jsp
第一阶段产出的档案:
http://www.rskl.geog.ntu.edu.tw/tgis/problem/company.txt
第二阶段产出的档案:
http://www.rskl.geog.ntu.edu.tw/tgis/problem/final.txt
========第一阶段开始
$infile = 'hchl1110(5).jsp';
$fin = fopen($infile, 'r');
$outfile = 'company.txt';
$fout = fopen($outfile,'w') or exit('档案$outfile 开启错误!<br>');
while(!feof($fin))
{
$line = fgetss($fin, 1024);
$line = ereg_replace(' ','',$line);
$line = ereg_replace(' ','',$line);
$line = trim($line);
fwrite($fout,$line);
}
fwrite($fout,"\n");
fclose($fin);
fclose($fout);
====第二阶段开始
$infile1 = 'company.txt';
$fin1 = fopen($infile1,'r') or exit('档案$outfile 开启错误!<br>');
$outfile1 = "final.txt";
$fout1 = fopen($outfile1,'w');
while(!feof($fin1))
{
$line1 = fgetss($fin1,1024);
$line1 = ereg_replace('统一编号',',统一编号,',$line1);
$line1 = ereg_replace('核准设立日期',',核准设立日期,',$line1);
$line1 = ereg_replace('最近异动日期',',最近异动日期,',$line1);
$line1 = ereg_replace('营利事业名称',',营利事业名称,',$line1);
$line1 = ereg_replace('负责人姓名',',负责人姓名,',$line1);
$line1 = ereg_replace('公司/行号联络电话',',公司/行号联络电话,',$line1);
$line1 = ereg_replace('登记资本额',',登记资本额,',$line1);
$line1 = ereg_replace('实收资本额',',实收资本额,',$line1);
$line1 = ereg_replace(',0','0',$line1);
$line1 = ereg_replace(',1','1',$line1);
$line1 = ereg_replace(',2','2',$line1);
$line1 = ereg_replace(',3','3',$line1);
$line1 = ereg_replace(',4','4',$line1);
$line1 = ereg_replace(',5','5',$line1);
$line1 = ereg_replace(',6','6',$line1);
$line1 = ereg_replace(',7','7',$line1);
$line1 = ereg_replace(',8','8',$line1);
$line1 = ereg_replace(',9','9',$line1);
$line1 = ereg_replace('按我查询公司登记现况','',$line1);
$line1 = ereg_replace('公司登记现况','',$line1);
$line1 = ereg_replace('现况',',现况,',$line1);
$line1 = ereg_replace('资本额\(元)',',资本额(元),',$line1);
$line1 = ereg_replace('组织类型',',组织类型,',$line1);
$line1 = ereg_replace('地址',',地址,',$line1);
$line1 = ereg_replace('营业项目',',营业项目,',$line1);
$line1 = ereg_replace('\(查询',',(查询',$line1);
fwrite($fout1,$line1);
}
fwrite($fout1,"\n");
fclose($fin1);
fclose($fout1);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.149.50
※ 编辑: Uihc 来自: 61.31.149.50 (05/31 18:26)