有没有理由为什么PHP没有捕获这个子字符串?

时间:2011-08-19 08:14:40

标签: php substring

我有一个包含一堆字符串的数组,其中一些字符串包含以下代码:

<SPAN style="font:7.0pt &quot;Times New Roman&quot;"> </SPAN>

当我尝试做

str_replace("<SPAN style=\"font:7.0pt &quot;Times New Roman&quot;\"> </SPAN>","",$var);

它没有被抓住。

任何想法为什么不呢?

2 个答案:

答案 0 :(得分:3)

函数str_replace 返回替换的字符串,因此您必须执行以下操作:

$var=str_replace("<SPAN style=\"font:7.0pt &quot;Times New Roman&quot;\"> </SPAN>","",$var);

编辑:但您应该考虑使用strip_tags()或preg_replace(),例如:

$var=preg_replace('#<span( [^>]+)?>(.*)</span>#iu','\\2',$var)

(替换所有标签和结束标签 - 我没有测试过,在使用前测试)

答案 1 :(得分:1)

我认为您搜索的字符串的$ var格式不同。我试过这个:

$var = 'dsfdsfdsf<SPAN style="font:7.0pt &quot;Times New Roman&quot;"> </SPAN>idshfudsyfuisdfy';

echo str_replace("<SPAN style=\"font:7.0pt &quot;Times New Roman&quot;\"> </SPAN>","",$var);

输出dsfdsfdsfidshfudsyfuisdfy

我建议您输出$ var并检查它是否真的符合您的预期。