Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php内容关键字替换的函数分享

php内容关键字替换的函数分享

发布时间:2017-02-23   编辑:www.jquerycn.cn
本文分享一个php实现的内容关键字替换的函数,精巧实用,效果不错,有需要的朋友参考下吧。

本节主要内容:
一个php实现的内容关键字替换的函数。

例子:
 

复制代码 代码示例:

<?php
/**
* 内容关键字替换
* by www.jbxue.com
*/

$arr=array(
"鞋子"=>"<a href='index.html'>鞋子</a>",
"袜子"=>"<a href='wazi.html'>袜子</a>",
"裙子"=>"<a href='qunzi.html'>裙子</a>",
"连衣裙"=>"<a href='连衣裙.html'>连衣裙</a>",
);
$str="鞋子 袜子 鞋子 袜子 鞋子 袜子 鞋子 袜子 裙子 连衣裙";
$str=replacelink($str,$arr,3);
echo $str;

public function replacelink($str,$arr,$maxcount=3000){
//匹配出图片
preg_match_all("/(<img[^>]*>)/iUs",$str,$imgs);
preg_match_all("/(<a.*>.*<\/a>)/iUs",$str,$links);
//替换图片和链接
if($links[1]){
foreach($links[1] as $k=>$v){
$str=str_replace($v,"@links_$k",$str);
}
}
if($imgs[1]){
foreach($imgs[1] as $k=>$v){
$str=str_replace($v,"@imgs_$k",$str);
}
}
//匹配结束
$str=strtr($str,$arr);
preg_match_all("/(<a.*>.*<\/a>)/iUs",$str,$a);
$a=$a[1];
$c=array_count_values($a);
if($c){
$kk=0;
foreach($c as $k=>$v){
if($v){
if($kk<$maxcount){
$v=$v-1;
}
$str=preg_replace("/".$this->replace_quote($k)."/i",str_replace("#","",strip_tags($k)),$str,$v);
}
$kk++;
}
}
//还原图片跟链接
if($links[1]){
foreach($links[1] as $k=>$v){
$str=str_replace("@links_$k",$v,$str);
}
}
if($imgs[1]){
foreach($imgs[1] as $k=>$v){
$str=str_replace("@imgs_$k",$v,$str);
}
}
return $str;
}

function replace_quote($str){
$str=preg_quote($str);
$str=str_replace("/","\/",$str);
return $str;
}

您可能感兴趣的文章:
php替换html内容的小函数
PHP字符串替换函数 可同时替换多个关键词
PHP实现文章内容添加内链关键词替换的代码
PHP文章内链实例代码 php关键词替换且只替换一次
php内容关键字替换的函数分享
mysql中upate-替换字段内部分内容的例子
php替换字符的实现方法
php实现文章中关键词加链接的方法
正则表达式处理函数 preg_match,preg_match_all
php str_ireplace函数怎么用

[关闭]