如果尚未包含在网址中,则仅使用网址查找和替换关键字

时间:2010-12-23 20:14:05

标签: php

所以,我可以很容易地做到这一点:

$keywords = array(' jacket ',' sweater ',);
$urls = array(' <a href="#">jacket</a> ',' <a href="#">sweater</a> ',);
$content = str_ireplace($keywords,$urls,$content);

但问题是夹克或毛衣之类的东西已经在链接标签中。

我想不出任何简单的解决方案......

2 个答案:

答案 0 :(得分:0)

  • 步骤1)找到每个的所有实例 关键字在网址和广告中 用GUID替换它们
  • 步骤2)替换每个的所有其他实例 更换关键字
  • 步骤3)用他们的GUID替换GUID 原始关键字。

希望你选择你的Guid以及你如何进行搜索取决于你:)

答案 1 :(得分:0)

你可以为此构建一个花哨的正则表达式,但它会非常复杂,几乎不可能维护。 IMO,你应该采取基于令牌的方法来解决这个问题。我有一个名为Lexentity的项目,我们用它们用数字实体替换撇号和引号等。您可以根据自己的需要调整该代码。 HTMLTokenizer中还有HTMLTokenset(和Habari)您可能会觉得有用。