substr_replace替换问题2
感谢@jam00 在http://bbs.csdn.net/topics/391942653?page=1#post-401087159中的回答。
按照大神的思路,如果是下面的情况该怎么办呢?
比原来的多一部分,这种情况和http://bbs.csdn.net/topics/391942653一模一样,比如有个标签叫“企业管理”,那么当文章中出现了“企业管理书籍”,就会被替换两次先替换企业管理书籍然后再替换企业管理,这样HTML乱了套,变成下面这样:
<a href="http://www.12reads.cn/" title="<a target='_blank' title='企业管理' href='http://v:8888/tag/%e4%bc%81%e4%b8%9a%e7%ae%a1%e7%90%86'>企业管理</a>书籍" target="_blank">企业管理书籍</a>
按照大神的思路,如果是下面的情况该怎么办呢?
function keywords_autolink($content) {
$keywords=array(
'企业管理书籍' => '<a target="_blank" title="企业管理书籍" href="http://www.12reads.cn/">企业管理书籍</a>',
'管理学书籍' => '<a target="_blank" title="管理学书籍" href="http://www.12reads.cn/">管理学书籍</a>',
'管理书籍' => '<a target="_blank" title="管理书籍" href="http://www.12reads.cn/">管理书籍</a>',
'管理类书籍' => '<a target="_blank" title="管理类书籍" href="http://www.12reads.cn/">管理类书籍</a>',
'市场营销' => '<a target="_blank" title="市场营销" href="http://www.12reads.cn/category/marketing">市场营销</a>',
'职场' => '<a target="_blank" title="职场" href="http://www.12reads.cn/category/career">职场</a>'
);
//关键词部分
$keys=array_keys($keywords);
foreach ($keys as $k) {
$pos=strpos($content, $k);
if ($pos !== false) {
// Nothing found
$length=strlen($k);
$content=substr_replace($content, $keywords[$k], $pos, $length);
//$content是文章内容,$keywords[$k]需要替换成的内容,$pos替换开始的位置,$length数出要从开始的位置算起要替换的词有多长。
unset($k);//最后销毁一下哦。
}
}
//标签部分
$tags = get_tags();
foreach ($tags as $key){
$name= $key->name;//取出所有标签名称
$tag_link = get_tag_link($key->term_id);//取出标签链接
$replacement="<a target='_blank' title='{$key->name}' href='{$tag_link}'>{$key->name}</a>";
$pos=strpos($content, $name);
if ($pos !== false) {
$length=strlen($name);
//从标签开始出现的位置按照其字符长度开始替换,因此结果是只替换一次。
$content=substr_replace($content, $replacement, $pos, $length);
unset($key);//最后销毁一下哦。
}
}
return $content;
}
add_filter('the_content', 'keywords_autolink');比原来的多一部分,这种情况和http://bbs.csdn.net/topics/391942653一模一样,比如有个标签叫“企业管理”,那么当文章中出现了“企业管理书籍”,就会被替换两次先替换企业管理书籍然后再替换企业管理,这样HTML乱了套,变成下面这样:
<a href="http://www.12reads.cn/" title="<a target='_blank' title='企业管理' href='http://v:8888/tag/%e4%bc%81%e4%b8%9a%e7%ae%a1%e7%90%86'>企业管理</a>书籍" target="_blank">企业管理书籍</a>
...全文
相关推荐
php字符串替换函数substr_replace()用法实例
主要介绍了php字符串替换函数substr_replace()用法,实例分析了php中substr_replace函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
浅谈C++中replace()方法
C++编程语言中的string应用方式多样化,每一种应用方式都能帮助我们提实现特定的功能需求。在这里我们将会为大家详细介绍一下其中一个比较重要的用法,有关C++ replace()函数的应用方式,需要的朋友可以参考下
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示功能
为了我们的隐私,所以我们把手机号码部分数字隐藏掉,今天小编给大家带来了PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示,需要的朋友参考下吧
js replace替换字符串同时替换多个方法
主要介绍了js replace替换字符串同时替换多个方法 的相关资料,需要的朋友可以参考下
oracle 多个字符替换实现
CSDN上的一个网友,需要一个sql语句的解决方案需求是这样的求写oracle多个字符替换(有测试数据)


基础编程
