2012-04-28 19 views
0

私はYouTubeの検索結果ページでビデオリンクを掻き集めようとしていますが、すべてのビデオリンクに一意のIDが含まれているので問題があります。ここでのコードは、私がこれまで持っています:ユニークなIDのPHP /カールのリンクを掻き集める

<?php 

$data = file_get_contents('http://www.youtube.com/results?search_query=php'); 

$regex = '/watch?v={11}/'; 

preg_match($regex,$data,$match); 

print_r($match); 

?> 

それは「/見てV =?」または動的につかむために私の試みに拾うことが表示されませんので、私は空の配列を取得し、それをプリントアウトするときそれに続く11文字のUID。

+0

エスケープ "?" "\?"そしてさらに試みる。何が起こるのですか? –

+0

"([^ \&])"を "{11}"の前に追加してください。 –

答えて

1

正規表現にエラーがあります。さらに、preg_match_allを使用してすべてのマッチを取得したいとします。

$data = file_get_contents('http://www.youtube.com/results?search_query=php'); 

$regex = '/watch\?v=([a-zA-Z0-9_]{11})/'; 

preg_match_all($regex,$data,$matches); 

print_r($matches); 
0

{11}は、パターンが正確に11回発生する必要があることを示します。つまり、11等号に一致するようにしています。これを.{11}に変更したいと思います。これはうまくいかないかもしれませんが、少なくとも結果は得られます。

関連する問題