我有一个包含数据的CSV文件。 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 :(得分:0)
我尚未测试您的功能,但您也可以使用iconv()
来获取您要查找的结果。
只需替换:
echo replaceAccents( $data[$c] )."\n";
使用:
echo iconv('UTF-8','ASCII//TRANSLIT', $data[$c]) . "\n";