【问题标题】:How to preg_replace?如何preg_replace?
【发布时间】:2010-08-25 04:54:44
【问题描述】:

我想用<some_my_tag>http://www.somesite.com/videos/video23.mp4</some_my_tag> 之类的东西替换http://www.somesite.com/videos/video23.mp4 之类的东西。如何在 PHP 中做到这一点?

【问题讨论】:

  • 您的“类似”有点模糊。该 URL 有什么变化?
  • 我认为这是一个完全有效的问题

标签: php regex


【解决方案1】:

正如您所说的“除了 .mp4 之外的所有内容”都可以在 URL 中更改,那么您可以使用这个:

$NewStr = preg_replace('#http://(.+?)\.mp4#i', '<some_my_tag>http://$1.mp4</some_my_tag>', $Str);

【讨论】:

    【解决方案2】:

    像这样:

    $url = "http://www.somesite.com/videos/video23.mp4";
    $output = preg_replace('/((?:http|https):\/\/[a-z0-9\/\?=_#&%~-]+(\.[a-z0-9\/\?=_#&%~-]+)+)|(www(\.[a-z0-9\/\?=_#&%~-]+){2,})/', '<some_my_tag>$1</some_my_tag>', $url);
    

    正则表达式模式将允许您找到任何类型的网址

    我在这里回答了一个(或多或少)类似的问题 -> highlighting search results in php/mysql

    【讨论】:

      【解决方案3】:
      preg_replace('#http://(.+?)\.mp4#i', '<tab>http://$1.mp4</tag>', $text)
      

      【讨论】:

      • 完全正确,但您会认为只有以 .mp4 结尾的链接
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多