PHP preg_replace 问题?

发布于 2024-10-17 10:48:41 字数 441 浏览 2 评论 0原文

嘿伙计们, 我是 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 URL 匹配的模式。 如果此模式匹配,我想调用函数 embedCode() 并传递匹配的字符串。

我怎样才能做到这一点。现在我显然正在传递正则表达式代码,这当然是错误的。我需要传递匹配的字符串。

谢谢

hey guys,
I'm a preg_replace noob and don't understand how to solve the following case:

$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);

I have a pattern that matches any youtube URL.
If this pattern is matched i want to call the function embedCode() and pass along the matched string.

How can i do this. right now i'm obviously passing along the regexp code which is of course wrong. I need to pass along the matched string.

thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

信仰 2024-10-24 10:48:41
$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]);
}

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

$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]);
}

You just have to find the index of matched url, try print_r($content); inside the if and see what is the index for the matched pattern.

-小熊_ 2024-10-24 10:48:41

你正在尝试这样做:

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

You are trying to do this:

if ( preg_match( '/' . $youtubeurl . '/', $content, $match ) )
{
    embedCode( $match );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文