我需要阅读一组文本文件并获取内容,这部分是成功的。问题是内容由一些扩展的ACII字符组成,我使用以下内容来过滤这些字符:
$contents = preg_replace('/[^(\x20-\x7F)]*/','', $contents);
这将删除所有扩展的ASCII字符以及所需的字符,如撇号,引号等
我应该如何更改preg_replace来执行此操作?
答案 0 :(得分:1)
问题不在于ascii '
或"
,它们不在您要过滤的范围内。问题很可能是Windows智能报价。在运行替换之前过滤掉那些,你会有更多的快乐;)
<?php
function convert_smart_quotes($string)
{
$search = array(chr(145),
chr(146),
chr(147),
chr(148),
chr(151));
$replace = array("'",
"'",
'"',
'"',
'-');
return str_replace($search, $replace, $string);
}
$contents = convert_smart_quotes($contents);
$contents = preg_replace('/[^(\x20-\x7F)]*/','', $contents);
var_dump($contents);
?>