YouTubeビデオIDを取得するために、この正規表現パターンがあります
preg_match_all( '/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i', $string, $res );
ただし、次の例の文字列では正しく機能しないようです。
<?php
$string = "yet, another youtube video.
[url=http://www.youtube.com/watch?feature=player_embedded&v=6kVpM5WK5JI#]http://www.youtube.com/watch?feature=player_embedded&v=6kVpM5WK5JI#[/url]
Fonte:onothersite";
preg_match_all( '/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i', $string, $res );
print_r($res);
?>
上記のコードはこれを出力します:
Array (
[0] =>
Array (
[0] => youtube.com/watch?feature=player_embedded&v=6kVpM5WK5JI#]http://www.youtube.com/watch?feature=player_embedded&v=6kVpM5WK5JI#[/url] Font
)
[1] =>
Array (
[0] => url] Font
)
)
そして、これを出力する必要があります:
Array (
[0] =>
Array (
[0] => youtube.com/watch?v=6kVpM5WK5JI
)
[1] =>
Array (
[0] => 6kVpM5WK5JI
)
)
これを解決する方法はありますか?
ありがとう。