2017-09-19 112 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

相关问题