str_replace不适用于从curl获得的html内容

问题描述

|| 我使用curl获取html并将其保存到$ content。然后我尝试str_replace,它不起作用:
echo str_replace(\'<a onclick=\"get_content(\\\'http://en.wikipedia.org\\\');\" style=\"cursor: default;\">Dojo</a> Applications\',\'OK\',$content);
但是,当我尝试打印$ content并复制源并将其再次保存到$ content时,它可以工作: echo $ content;然后,我复制打印的内容并将其再次保存到$ content中:
$content=\'It is <a onclick=\"get_content(\\\'http://en.wikipedia.org\\\');\" style=\"cursor: default;\">Dojo</a> Applications\';
使用新的$ content,以上替换有效。     

解决方法

您的搜索字符串中包含嵌入的返回。这将使您的PHP文件具有任何行尾。您的curl内容可能具有不同的行尾。尝试这个:
$content = str_replace(\"\\r\\n\",\"\\n\",$content);
echo str_replace(\'<a onclick=\"get_content(\\\'http://en.wikipedia.org\\\');\"\'.\"\\n\".\'style=\"cursor: default;\">Dojo</a> Applications\',\'OK\',$content);