作者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)