2017-09-19 109 views
0

我有一個帶有數據的CSV文件。 CSV文件是用逗號分隔的。它包含重音字符。我希望能夠對文件進行清理,以便將所有帶重音符號的字符替換爲其英文同義字符。使用PHP讀取CSV文件並替換重音字符

我在使用PHP閱讀文件,我有一個函數來替換重音字符。但是,我似乎無法獲得該功能的工作。

正在讀取CSV文件。

$row = 1; 
if (($handle = fopen($input_filename , "r")) !== FALSE) { 

    while(($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 

     $num = count($data); 

     $row++; 

     for ($c=0; $c < $num; $c++) { 

      echo replaceAccents($data[$c])."\n"; 

     } 

    } 

    fclose($handle); 
} 

更換口音功能

function replaceAccents($str) { 

    $search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,ø,Ø,Å,Á,À,Â,Ä,È,É,Ê,Ë,Í,Î,Ï,Ì,Ò,Ó,Ô,Ö,Ú,Ù,Û,Ü,Ÿ,Ç,Æ,Œ"); 

    $replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,o,O,A,A,A,A,A,E,E,E,E,I,I,I,I,O,O,O,O,U,U,U,U,Y,C,AE,OE"); 

    return str_replace($search, $replace, $str); 


} 

當我運行程序時,它似乎仍然呼應了重音符號。

我該如何讀取文件,替換重音字符,然後輸出清除過的文件?

回答

0

我還沒有測試過你的功能,但你也可以用iconv()來得到你要找的結果。

只需更換:

echo replaceAccents($data[$c])."\n"; 

有:

echo iconv('UTF-8','ASCII//TRANSLIT', $data[$c]) . "\n"; 

An example using your data

+0

這刪除了包括重音字符後的所有內容,它不會替代它? –

+0

@IbrahimHafiji它不應該:https://eval.in/864076。你的代碼是什麼樣的,變量的內容是什麼? – jeroen

相關問題