PHP preg_replace没有替换任何东西

时间:2015-08-30 22:06:23

标签: php string replace preg-replace

有人可以告诉我为什么当我运行这段代码时,preg_replace函数似乎什么都没做?

<?php
    $string     = 'waka http://video.webmfiles.org/big-buck-bunny_trailer.webm waka';
    $search     = '#http\:\/\/.\.webm #';
    $replace    = '<video width="320" height="240" controls><source src="$1" type="video/webm"></video>';
    $url = preg_replace($search,$replace,$string);
    echo $url;
?>

我的$ search字符串错了吗?如果是这样,我该如何解决?它假设从http://开始并以.webm结尾替换字符串,并用播放.webm视频所需的html代码包围它们。

2 个答案:

答案 0 :(得分:1)

我最终搞清楚了。我现在正在使用:

else

答案 1 :(得分:1)

以下是我如何做到这一点......

$string     = 'waka http://video.webmfiles.org/big-buck-bunny_trailer.webm waka';
$search     = '/(https?\:\/\/.+?\.webm)\h/';
$replace    = '<video width="320" height="240" controls><source src="$1" type="video/webm"></video> ';
$url = preg_replace($search,$replace,$string);
echo $url;

输出:

waka <video width="320" height="240" controls><source src="http://video.webmfiles.org/big-buck-bunny_trailer.webm" type="video/webm"></video> waka

Regex101演示:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_animations