使用PHP读取CSV文件并替换重音字符
问题描述:
我有一个带有数据的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);
}
当我运行程序时,它似乎仍然呼应了重音符号。
我该如何读取文件,替换重音字符,然后输出清除过的文件?
答
我还没有测试过你的功能,但你也可以用iconv()
来得到你要找的结果。
只需更换:
echo replaceAccents($data[$c])."\n";
有:
echo iconv('UTF-8','ASCII//TRANSLIT', $data[$c]) . "\n";
这删除了包括重音字符后的所有内容,它不会替代它? –
@IbrahimHafiji它不应该:https://eval.in/864076。你的代码是什么样的,变量的内容是什么? – jeroen