【问题标题】:Finding and replacing large amount of keywords in text在文本中查找和替换大量关键字
【发布时间】:2012-05-31 06:13:39
【问题描述】:

假设我有一个大约 10,000 个单词的 HTML 文本和一个包含大约 10,000 个关键字的列表。我想在文本中找到所有出现的关键字并将它们替换为<span title="a keyword">keyword</span>。作为一个额外的复杂因素,我不想替换周围已经有 <span> 的关键词。

在 PHP 中最好、最有效的方法是什么?

我显然可以为每个关键字构建一个正则表达式并按顺序运行它们,但这似乎是一场复杂的噩梦。

【问题讨论】:

    标签: php dom text replace


    【解决方案1】:

    您可以使用Preg_Replace 这是一个非常强大的工具,祝你有美好的一天。

    【讨论】:

      【解决方案2】:

      可能是这样的?不过我不确定

      $str          = "this is keyword say this is also keyword say say";
      $newtext      = wordwrap($str, 18, "\n", true);
      $patterns[0]  = '/keyword/';
      $patterns[1]  = '/say/';
      $replacements = array();
      
      foreach($patterns as $k=>$v)
      {
        $replacements[] = "<span title=\"a ".str_replace("/","",$v)."\">".str_replace("/","",$v)."</span>";
      }
      
      echo preg_replace($patterns, $replacements, $str);
      

      【讨论】:

        【解决方案3】:

        试试这个:

        str_replace('your_string','keyword','<span title="a keyword">keyword</span>')
        

        【讨论】:

        • 不幸的是,他说他不想替换已经有跨度​​的关键字,这样就行不通了。否则,您将在跨度内有跨度。
        猜你喜欢
        • 2012-05-22
        • 2011-10-20
        • 2013-10-12
        • 1970-01-01
        • 2011-02-16
        • 2021-04-30
        • 1970-01-01
        • 2011-03-05
        • 1970-01-01
        相关资源
        最近更新 更多