【问题标题】:Convert Youtube embed videoid with php preg_replace and str_replace使用 php preg_replace 和 str_replace 转换 Youtube embed videoid
【发布时间】:2022-01-25 14:56:49
【问题描述】:

我正在使用此代码将嵌入的 youtube iframe 标记转换为 lite-youtube 标记。

 $compa = str_replace("https://www.youtube.com/embed/","",$compatibilita);
    
       $compafinal = preg_replace('/<iframe\s+.*?\s+src=(".*?").*?<\/iframe>/', '<lite-youtube
        videoid=$1
        params="controls=1&modestbranding=2&rel=0&enablejsapi=1">
        </lite-youtube>', $compa);
       echo $compafinal;

我的问题是 Youtube src 可以包含例如

youtube.com/embed/nvcMQ234HCG8?rel=0&enablejsapi=1&origin=https

而我只想获取 videoid,剥离 ?rel=0&enablejsapi=1&origin=https

【问题讨论】:

    标签: php preg-replace str-replace


    【解决方案1】:

    只需检查 url 是否有查询参数,如果有,只使用之前的部分:

    
    if(strpos($compatibilita, "?") !== FALSE) { 
    //Have to check if it's different to false because strpos can return 0 and 0 is falsy
      $compatibilita = substr($compatibilita, 0, strpos($compatibilita, "?"));
    }
    
    $compa = str_replace("https://www.youtube.com/embed/","",$compatibilita);
        
           $compafinal = preg_replace('/<iframe\s+.*?\s+src=(".*?").*?<\/iframe>/', '<lite-youtube
            videoid=$1
            params="controls=1&modestbranding=2&rel=0&enablejsapi=1">
            </lite-youtube>', $compa);
           echo $compafinal;
    

    如果网址是youtube.com/embed/nvcMQ234HCG8?rel=0&amp;enablejsapi=1&amp;origin=https,则变量将为youtube.com/embed/nvcMQ234HCG8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-11
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多