我通过file_get_contents($file)
获得了一个字符串。
为什么我无法替换" - " (不是"减去"但HTML –
)使用PHP的preg_replace函数? preg_match也不起作用:
e.g。
$file
的输出是"等等 - 等等#34;
$str = file_get_contents($file);
$str = preg_replace('/–/', 'test', $str);
echo $str;
应该返回blah test blah
,但会返回blah – blah
。
乳清是那个,我怎样才能替换ndash呢?
感谢您的帮助!
答案 0 :(得分:1)
该文件似乎包含长划线的HTML实体,为了获得–
的纯文本,您需要先使用html_entity_decode
。
使用
$str = preg_replace('/–/', 'test', html_entity_decode($str));
^^^^^^^^^^^^^^^^^^^^^^^^
$str = 'blah – blah';
echo "Original: " . $str . "\n";
$str = preg_replace('/–/', 'test', html_entity_decode($str));
echo "Replaced: " . $str;
输出:
Original: blah – blah
Replaced: blah test blah