php - Preg_replace YouTube视频字符串以在段落中嵌入代码

标签 php youtube preg-replace

我有preg_replace的这种模式。

#<a>(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/a>#x

但在这种情况下,我需要对其进行更改。
<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p>

有人可以帮我吗?非常感谢。

最佳答案

这有效:

$string = '<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p>';

if(preg_match('#<(?:a|p)>(?:href="https?://|http://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/(?:a|p)>#x', $string)){ 
    echo 'Match found.';
}else{
    echo 'No match found.';
}
  • 用(?:a | p)
  • 替换了开始和结束 anchor 标记中的a
  • 向第二组添加或条件:(?:href =“https?:// | http://)?
  • 表达式结尾附近的。*已经处理了添加的(<br/>)部分。
  • 关于php - Preg_replace YouTube视频字符串以在段落中嵌入代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296120/

    相关文章:

    html - 无法嵌入YouTube将视频加载到我的网站上(按 channel 最新上传)

    php - 无法从 Ajax POST 请求将带空格的数据获取到数据库中

    php - Twig nl2br 过滤器不适用于实体

    Android YouTube API 视频在旋转屏幕或隐藏播放器时暂停

    jquery - jQuery在播放时移动youtube视频

    php - 将字符串清理成逗号分隔数字的最优雅方法

    php - Preg_replace,只替换( )中的模式部分?

    php - 替换多个换行符、制表符和空格

    php - 如何修剪查询字符串的中间部分?

    PHP SoapFault 详细信息命名空间