2012-01-12 11 views
1

私は、次のようなJavaScriptコードのインラインに埋め込まjavascript配列を持つWebページをこすりする必要がありますこれらのビデオURLのPHP配列?スクレイプWebページおよび検索javascriptの変数は

編集: すべての動画は.movの拡張子です。

+0

私はfile_get_contentsを使用し、いくつかの正規表現を試しています。私は正規表現でうまくいきません。 – Nacho

答えて

1

これはもう少し複雑ですが、それはここでOPからのフィードバック後の形式で実際にあるもののみのリンク、videos[0] = 'http://myvideos.com/video1.mov';

$tmp=str_replace(array("\r","\n"),'',$original,$matches); 
$pattern='/\<script\>\s+var\ videos.*?((\s*videos\[\d+\]\ \=\ .http\:\/\/.*?\;\s*?)+)(.*?)\<\/script\>/'; 
$a=preg_match_all($pattern,$tmp,$matches); 
unset($tmp); 

if (!$a) die("no matches"); 

$pattern="/videos\[\d+\]\ \=\ /"; 
$matches=preg_split($pattern,$matches[1][0]); 

$final=array(); 
while(sizeof($matches)>0) { 
    $match=trim(array_shift($matches)); 
    if ($match=='') continue; 
    $final[]=substr($match,1,-2); 
} 
unset($matches); 

print_r($final); 

を取得するには、簡易版です。

$original=file_get_contents($url); 
$pattern='/http\:\/\/.*?\.mov/'; 
$a=preg_match_all($pattern,$original,$matches); 
if (!$a) die("no matches"); 
print_r($matches[0]); 
+0

ありがとう、私はこれを確認します。すべてのビデオは常に.mov – Nacho

+1

なので、実際にはそのページから削られた.movファイルへのすべてのリンクが必要なのではないかと思います。 –

+0

そうです。 [ダミーテキスト] – Nacho

1

あなたはfile_get_contentsでページを読んでから、正規表現でURLを取得することでこれを掻き集めることができます。 これは私が知っている最も簡単な方法です。特に、あなたのビデオのファイル拡張子が分かっている場合は、 Exemple:

<?php 
$file = file_get_contents('http://google.com'); 
$pattern = '/http:\/\/([a-zA-Z0-9\-\.]+\.[fr|com]+)/i'; 
preg_match_all($pattern, $file, $matches); 
var_dump($matches); 
+0

これはまさに私の最初のアプローチでした。私にはそれほど多くの選択肢はないと思いますか? – Nacho

関連する問題