【问题标题】:search a string for a word and replace that word with different links php在字符串中搜索一个单词并用不同的链接替换该单词 php
【发布时间】:2013-08-11 14:42:57
【问题描述】:

使用 PHP,如何用不同的链接替换字符串中的单词。

我想用不同的链接依次替换web开发这个词

这家网络开发公司很棒。一个好的网络开发开始 与...

像这样

这家web development 公司很棒。一个好的web development 开始 与...

我尝试过使用str_ireplace,但两个链接都指向同一个站点。

这是我的代码

<?php

$text = 'This web development company is great. A good web development starts with...';


$replaced = str_ireplace(array('web development', 'web development'),array('<a href="http://google.com">web development</a>', '<a href="http://yahoo.com">web development</a>'), $text);

echo $replaced;

【问题讨论】:

  • php应该如何知道用哪个链接替换“web development”?按订单?
  • 您要用于替换的链接是否总是以相同的顺序出现?您对原始内容是否有任何控制权,即将 Web 开发更改为更有用的占位符?
  • 数组中的第一个替换链接应该替换第一个单词。

标签: php


【解决方案1】:

我认为你可以使用preg_replace()函数,如下:

$pattern = '/(web development)(.*)(web development)/';
$replace = '<a href="http://google.com">web development</a>$2<a href="http://yahoo.com">web development</a>';
$result = preg_replace($pattern, $replace, $text);
echo $result;

希望有所帮助!

【讨论】:

    【解决方案2】:

    尝试使用正则表达式:

    <?php
    $text = 'This web development company is great. A good web development starts with...';
    
    $regex = "/[^>]web development[^<]/i";
    $replace = array(' <a href="http://google.com">web development</a> ', 
    ' <a href="http://yahoo.com">web development</a> ');
    $count = 1;
    $replaced = preg_replace(array($regex,$regex), $replace, $text, $count);
    
    echo $replaced;
    

    【讨论】:

      【解决方案3】:

      就像在 this topic 中一样,您可以执行类似的操作(使用 preg_replace):

      $str = 'abc and abc'; 
      $str = preg_replace('/abc/', 'google', $str, 1); 
      $str = preg_replace('/abc/', 'yahoo', $str, 1);
      echo $str;
      

      它将显示:“google and yahoo”

      (希望我能理解您的需求)

      【讨论】:

        【解决方案4】:

        我认为您可以使用preg_replace 来做到这一点。

        搜索主题以匹配模式并将其替换为 替换。

        您可以将limit 设置为单词将被替换的时间。

        limit:每个主题中每个模式的最大可能替换 细绳。默认为 -1(无限制)。

        所以,我认为你可以做一个功能,首先计算“Web Development”的出现次数有你的文本,然后你执行:

        $text = preg_replace("web development", "<a href='http://www.exemple.com'>web development</a>", $text, 1);
        

        x 次。

        记住函数preg_replace:

        preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
        

        请参阅 PHP 手册中的 reference

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-13
          • 2017-11-14
          • 1970-01-01
          • 2014-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多