php替换内容页中的关键字
作者:admin 日期:2012-04-10
<?php
//现在有个需求:给文中的关键字加超链接
//如果有10个相同的关键字,只替换第一个
//如果某关键字A包含另外一个关键字B,则替换关键字B的时候不可替换A中的关键字B
$arrKeywords = array (
0 => array (
0 => '镀锌板卷',
1 => 'http://www.woosteel.com/block/duxinbanjuan'
),
1 => array (
0 => '锌',
1 => 'http://www.woosteel.com/block/xin'
),
2 => array (
0 => '上海',
1 => 'http://www.woosteel.com/shanghai'
),
3 => array (
0 => '叉烧包',
1 => 'http://www.woosteel.com/block/chashaobao'
)
);
$content = "2011年-上海-镀锌板卷-和-锌-的价格分别是多少?2011年-上海-镀锌板卷-和-锌-的价格分别是多少?2011年-上海-镀锌板卷-和-锌-的价格分别是多少?2011年-上海-镀锌板卷-和-锌-的价格分别是多少-叉烧包-?2011年-上海-镀锌板卷-和-锌-的价格分别是多少?2011年-上海-镀锌板卷-和-锌-的价格分别是多少-叉烧包-?";
$content = ReplaceKeywords($content);
echo($content);
/*内容关键字替换**/
function ReplaceKeywords($content)
{
global $arrKeywords;
if ( empty($content) )
{
return($content);
}
$i = 0;
foreach( $arrKeywords as $arr )//遍历关键字
{
if ( strpos($content, $arr[0]) > -1 )//如果找到,则替换为:[Keyword0]、[Keyword1]这种格式的数据,并将找到的关键字放入新的数组
{
$content = preg_replace("/" . $arr[0] . "/i", "[Keyword" . $i . "]", $content);
$arrTemp[] = $arr;
$i ++;
}
}
//die($content);//可以在这里先输出替换后的结果
//再将替换后的数据反替换
$arrLen = count($arrTemp);
for ( $i = 0; $i < $arrLen; $i ++ )//遍历找到的关键字,比如有10个[Keyword0],替换的时候第一个带链接,其余都不带。
{
$content = preg_replace("/\[Keyword" . $i . "\]/i", "<strong><a href=\"" . $arrTemp[$i][1] . "\" target=\"_blank\">" . $arrTemp[$i][0] . "</a></strong>", $content, 1);
$content = preg_replace("/\[Keyword" . $i . "\]/i", $arrTemp[$i][0], $content);
}
return ($content);
}
?>
广告位