PHP preg_replace问题?

时间:2011-02-14 11:57:30

标签: php preg-replace

嘿伙计们, 我是一个preg_replace菜鸟,不明白如何解决以下情况:

$youtubeurl = "((http|https)\:\/\/(www|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)\.youtube\.(com|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)([a-zA-Z0-9\-\.\/\?_=&;]*))"; 
$content = preg_replace($youtubeurl, embedCode($youtubeurl), $content);

我有一个匹配任何youtube网址的模式。 如果匹配此模式,我想调用函数embedCode()并传递匹配的字符串。

我该怎么办?现在我显然是在传递正则表达式代码,这当然是错误的。我需要传递匹配的字符串。

谢谢

3 个答案:

答案 0 :(得分:0)

$youtube_url_pattern = "#((http|https)\:\/\/(www|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)\.youtube\.(com|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)([a-zA-Z0-9\-\.\/\?_=&;]*))#"; 

if(preg_match($youtube_url_pattern, $content_containing_url, $content)){
  embedCore($contet[index]);
}

您只需找到匹配网址的索引,在print_r($content);内尝试if,看看匹配模式的索引是什么。

答案 1 :(得分:0)

您正在尝试这样做:

if ( preg_match( '/' . $youtubeurl . '/', $content, $match ) )
{
    embedCode( $match );
}

答案 2 :(得分:0)