$content = "哦哦哦哦信用卡<啊啊啊啊>信用卡隐隐约约隐隐约约\"信用卡中国农业银行啊啊啊中国农业银行信用卡\"呜呜呜为=信用卡中国石油论坛信用卡3大学百科招商银行易博公益百科招商银行信用卡4动物世界中国工商银行电力维基百科,中国工商银行信用卡5中国建设银行中国建设银行信用卡6中国银行中国银行信用卡7";这里面有很多“信用卡”的词语,其中“信用卡<  >信用卡  "信用卡  信用卡"  =信用卡”这5个两边有符号是不能替换的,我如何才能在后面的几个“信用卡”的两边加上<a href="index.php"></a>???

解决方案 »

  1.   

    $content = "哦哦哦哦信用卡 <啊啊啊啊>信用卡隐隐约约隐隐约约\"信用卡中国农业银行啊啊啊中国农业银行信用卡\"呜呜呜为=信用卡中国石油论坛信用卡3大学百科招商银行易博公益百科招商银行信用卡4动物世界中国工商银行电力维基百科,中国工商银行信用卡5中国建设银行中国建设银行信用卡6中国银行中国银行信用卡7"; function foo($r) {
      $dict = array('<', '>', '=', '"', ' ');
      if(in_array($r[1], $dict) || in_array($r[3], $dict)) {
        return $r[0];
      }
      return "$r[1]<a href='index.php'>$r[2]</a>$r[3]";
    }echo preg_replace_callback("/(.)(信用卡)(.)/", 'foo', $content); 
    哦哦哦哦信用卡 <啊啊啊啊>信用卡隐隐约约隐隐约约"信用卡中国农业银行啊啊啊中国农业银行信用卡"呜呜呜为=信用卡中国石油论坛<a href='index.php'>信用卡</a>3大学百科招商银行易博公益百科招商银行<a href='index.php'>信用卡</a>4动物世界中国工商银行电力维基百科,中国工商银行<a href='index.php'>信用卡</a>5中国建设银行中国建设银行<a href='index.php'>信用卡</a>6中国银行中国银行<a href='index.php'>信用卡</a>7
      

  2.   

    str_replace('信用卡','<a href="">信用卡</a>',$str)
      

  3.   


    $content = "哦哦哦哦信用卡 <啊啊啊啊>信用卡隐隐约约隐隐约约\"信用卡中国农业银行啊啊啊中国农业银行信用卡\"呜呜呜为=信用卡中国石油论坛信用卡3大学百科招商银行易博公益百科招商银行信用卡4动物世界中国工商银行电力维基百科,中国工商银行信用卡5中国建设银行中国建设银行信用卡6中国银行中国银行信用卡7"; $content = preg_replace('/([^\<\>\=\"\s])(信用卡)([^\<\>\=\"\s])/', "$1<a href=\"index.php\">$2</a>$3", $content);echo $content;