我需要在导入数据之前解析CSV文件。我想排除所有不需要的字符,但无法在æøå
中使preg_replace
工作
删除所有不需要的字符,包括æøåÆØÅ
输入文件字符集:ISO 8859-1
PHP文件字符集:UTF-8
"EI25";"EU køb";"16640";"25";"100";"NET";"16630"
$contents = file_get_contents('./vatcode.csv');
$contents = preg_replace("/[^A-ZÆØÅa-zæøå0-9_\s\"';,\/\.\+\-\\\\]/", '', $contents);
"EI25";"EU kb";"16640";"25";"100";"NET";"16630"
答案 0 :(得分:1)
这将删除除SPACE TO DEL之外的所有特殊字符 请参阅此表ascii table
$contents = file_get_contents('./vatcode.csv');
$contents = preg_replace('/[^(\x20-\x7F)]*/','', $contents);
echo($output);
答案 1 :(得分:1)
为了避免这种编码问题,您可以逐个使用\p{Latin}
而不是硬编码字母:
$contents = preg_replace('~[^\p{Latin}0-9_\s"\';,\\\/.+-]+~u', '', $contents);
也许其中一个类也可以提供帮助(来自PCRE documentation):
P Punctuation Pc Connector punctuation Pd Dash punctuation Pe Close punctuation Pf Final punctuation Pi Initial punctuation Po Other punctuation Ps Open punctuation
答案 2 :(得分:0)
发现这是因为PHP文件是用UTF-8