我需要一个php正则表达式,它将使用我的原始字符串
执行以下操作<div>The quick jumped over <p>[video=xdf890sfadf]</p> the white fence.</div>
到
<div>The quick jumped over <p><iframe src="http://www.youtube.com/embed/xdf890sfadf?rel=0&vq=hd720" height="365" width="650" allowfullscreen="" frameborder="0"></iframe></p> the white fence.</div>
所以我需要做的就是将视频ID从任何给定的html字符串中拉出来。
我想为此使用preg_replace()函数,但我对使用它的正确正则表达式感到困惑。请帮忙。
答案 0 :(得分:2)
在SO上进行简单的搜索,应该没问题。只需使用preg_match()
即可。考虑这个例子:
$original_string = '<div>The quick jumped over <p>[video=xdf890sfadf]</p> the white fence.</div>';
preg_match('/\[video=([^\]]+)\]/', $original_string, $matches);
if(!empty($matches)) {
$value = $matches[1];
$video = $matches[0];
$new_string = '<div>The quick jumped over <p><iframe src="http://www.youtube.com/embed/'.$value.'?rel=0&vq=hd720" height="365" width="650" allowfullscreen="" frameborder="0"></iframe></p> the white fence.</div>';
echo $new_string;
}