我用卷曲得到HTML并将其保存到$内容。 然后我尝试str_replace函数,它不工作:
echo str_replace('<a onclick="get_content(\'http://en.wikipedia.org\');" style="cursor: default;">Dojo</a> Applications','OK',$content);
但是,当我尝试打印$内容和复制源并再次将其保存到$内容,它的工作原理:
回声$内容; 然后,我复印打印并再次将其保存到$内容:
$content='It is <a onclick="get_content(\'http://en.wikipedia.org\');" style="cursor: default;">Dojo</a> Applications';
随着新的$内容,更换上述作品。
尝试把“\“”也。我认为这是这个问题。我不认为‘风格’的标签无关,使差异。
我的猜测是多余的空格或换行或类似的,请尝试更换块..如
str_replace('<a onclick="get_content(\'http://en.wikipedia.org\');" ','OK',$content);
str_replace('" style="cursor: default;">Dojo</a> Applications','OK',$content);
并且尝试找出它失败,那么你就可以追查
这对我的作品:
<?php
$content='it is <a onclick="get_content(\'http://en.wikipedia.org\');" style="cursor: default;">Dojo</a> Applications';
echo str_replace('<a onclick="get_content(\'http://en.wikipedia.org\');" style="cursor: default;">Dojo</a> Applications','OK',$content);
所以,你可能有串内实际换行符,他们并不在同一个格式编码,例如,一个\n
(Linux)的,另一种是\r\n
(Windows)中。 您可以正常化之前比较两个字符串:
<?php
$content = strtr($content, array(
"\r\n" => PHP_EOL,
"\r" => PHP_EOL,
"\n" => PHP_EOL,
));
在任何情况下,PHP具有良好的功能来处理HTML 。 我不会推荐的正则表达式的任务:他们是不可靠的,很难得到差不多吧。