2016-08-15 4 views
0

YouTube動画リンクのIDが必要です。 PHPを解析するには?YouTubeの動画IDを解析するにはどうすればよいですか?

まずリンク:https://www.youtube.com/watch?v=sEhy-RXkNo0

、第2リンク:https://youtu.be/sEhy-RXkNo0

+0

これまでに試したことのコードを教えてください。正規表現を試すことができます(のようなツールがあります)。あなたの正規表現にこだわって、それを共有すれば、人々があなたを助けます。あなたの質問にあまりにも広すぎるとフラグを立てる... –

+0

正規表現 '/ [\ w \ d - ] + $ /'は、(チャット、数字、ダッシュの末尾にマッチしたものを参照してください(http://regexr.com/3e0vo参照)文字列しかし、Youtubeは今後、ID形式を変更する可能性があることに注意してください(http://webapps.stackexchange.com/a/54448)。 –

答えて

0
$data = " https://www.youtube.com/watch?v=sEhy-RXkNo0"; //youtube link 

$data2 = "https://youtu.be/sEhy-RXkNo0"; 

$link= substr($data, strpos($data, "v=") + 2); //for first link 
$anotherLink = substr($data, strpos($data, "e/") + 2); //for secondlink 
+0

ありがとうございます。 2番目のリンクは機能しません。代替ソリューションはありますか? 2番目のリンクの使用のための –

+0

$ link = substr($ data、strpos($ data、 ".be /")+ 1); –

+0

ありがとうございます。それでも動作しません。 –

3

リンクは常に素敵な形式ではありませんし、別のGET持っているかもしれないので値を正規表現を使用する方が良いです。

<?php 
    $link1 = "https://www.youtube.com/watch?v=sEhy-RXkNo0"; 
    $link2 = "https://www.youtu.be/sEhy-RXkNo0"; 

    preg_match("/\?v=([^&]+)/", $link1, $id1); 
    preg_match("/youtu.be\/([^&]+)/", $link2, $id2); 

    $id1 = (isset($id1[1])) ? ($id1[1]) : (NULL); 
    $id2 = (isset($id2[1])) ? ($id2[1]) : (NULL); 
+0

ありがとうございます。それは誤解だった。私は2つの異なるYouTubeのビデオリンクのIDを取得したい。 –

関連する問題