如何在laravel中获取youtube视频的ID

时间:2018-02-01 09:19:40

标签: laravel youtube

我想获得使用此代码的youtube视频的ID:

$url = $video->link;
  if (preg_match('/youtube\.com\/watch\?v=([^\&\?\/]+)/', $url, $videoId)) {
    $values = $videoId[1];
  } else if (preg_match('/youtube\.com\/embed\/([^\&\?\/]+)/', $url, $videoId)) {
    $values = $videoId[1];
  } else if (preg_match('/youtube\.com\/v\/([^\&\?\/]+)/', $url, $videoId)) {
    $values = $videoId[1];
  } else if (preg_match('/youtu\.be\/([^\&\?\/]+)/', $url, $videoId)) {
    $values = $videoId[1];
  }
  else if (preg_match('/youtube\.com\/verify_age\?next_url=\/watch%3Fv%3D([^\&\?\/]+)/', $url, $id)) {
      $values = $videoId[1];
  } else {   
  // not an youtube video
  }

我得到这个错误“htmlspecialchars()期望参数1是字符串,给定数组”。错误是这个代码给我一个数组,当我想要一个字符串是否有一个解决方案来获取字符串格式的YouTube视频的ID?

1 个答案:

答案 0 :(得分:3)

使用parse_url()和parse_str()

$url="http://www.youtube.com/watch?v=C4kxS1ksqtw"

parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );

echo $my_array_of_vars['v'];    

 // Output: C4kxS1ksqtw

来源:https://stackoverflow.com/a/3393008/320487

参考文献:

http://php.net/manual/en/function.parse-url.php

http://php.net/manual/en/function.parse-str.php