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

如何在laravel中获取youtube视频的id,laravel,youtube,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)) { $v

我想获取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?

使用parse_url()和parse_str()

资料来源:

参考资料:


plz dd($videoId[1])阵列:2[▼ 0=>“youtube.com/watch?v=Y9oLMvwe4Eg”1=>“Y9oLMvwe4Eg”]这是问题中的$videoId或videoId[1]转储,不是使用您的代码,我这样做的:parse_str(parse_url($url,PHP_url_QUERY),$youtube)$id=$youtube['v'];它工作得很好,或者我只是在我的初始代码中添加了这一行:$id=$videoId[1];
$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