php替换内容页中的关键字

<?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);
 }
?>



上一篇: asp字符串函数大全
下一篇: Asp字符串函数InStrRev
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1863
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑