我想替换关键字,这是我的算法
$replace="<span class=fb_term >".$term."</span>";
$insmessage = str_ireplace($term, $replace, $post,$count)
$ count变量返回一个。
但$ insmessage没有替换它中的单词。如果我将"hello"
存储在$replace
中,那么它工作正常,似乎HTML "<span class=fb_term >"
导致问题,在这方面有任何帮助
感谢
答案 0 :(得分:2)
我真的,真的希望我在这里错了。
假设您的输入字符串只是$post = $term;
。好又简单。
你说“如果我将"hello"
存储在$replace
中,那就可以了。”这表明您尝试了以下方法:
$term = "derp";
$post = $term;
$replace = "hello";
$insmessage = str_ireplace($term,$replace,$post,$count);
echo $insmessage; // outputs hello
现在,我希望自己错了,但请耐心等待。看到上面的工作,你试了一下。
$term = "derp";
$post = $term;
$replace = "<span class=fb_term >".$term."</span>";
$insmessge = str_ireplace($term,$replace,$post,$count);
echo $insmessage; // outputs derp... or does it?
在浏览器中,您的HTML将被解析。 <span>
没有特殊行为,如果您没有为.fb_term
提供任何CSS,则没有明显的跨度存在迹象。
您尝试echo $count;
并看到1.这意味着更换DID。
试试这件事:
echo "Original length: ".strlen($post)."<br />\n";
echo "New length: ".strlen($insmessage);
如果我是对的,您应该看到原始长度为4
,新长度为32
。
拜托,请让我错了......
答案 1 :(得分:0)
我只是用更多数据扩展了你的脚本。被替换的文字被涂成红色,以便于查看。
$post = "Some text. And HaLLO to all. Another HaLLO";
$term = "hallo";
$replace = "<span class='fb_term' style='color:red'>".$term."</span>";
$insmessage = str_ireplace($term, $replace, $post, $count);
echo $insmessage;
echo "<br />count ".$count;
在我的情况下,$ term被替换,红色并显示为2.可以为$ replace文本添加颜色,以查看是否真的发生了1的计数。