2014-03-01 27 views
1

我需要PHP導入另一個HTML文件並從中獲取特定的內容。某處導入的頁面上會是這樣的一行:從另一個網頁獲取特定項目

<video preload="auto" loop="loop" data-bindattr-3="3" src="https://mtc.cdn.vine.co/v/videos/03F598B7-40F8-4FD4-AB39-90AFC4FEDC4F-123-00000044D7291C03_1.0.6.mp4?versionId=sn7CV5wXJKJY_.CJcPHrsyLRDAtveQYw"></video> 

我需要PHP找到該行並在一個變量得到這樣的:

https://mtc.cdn.vine.co/v/videos/03F598B7-40F8-4FD4-AB39-90AFC4FEDC4F-123-00000044D7291C03_1.0.6.mp4 

我已經做了很多,我想我」關閉。但是,PHP仍然無法爲我提供幫助。我認爲這是一個小錯誤,但我很長時間沒有找到它。

這裏是我的代碼(到目前爲止):

if ($check == "true") { //Okay, we've got a working URL here. 

$file_string = file_get_contents($url); //Import le page 
preg_match('<video preload="auto" loop="loop" data-bindattr-3="3" src="(.*?)"></video>si', $file_string, $keywords); //Find it... 
$keywords_out = $keywords[1]; //..get it 
$url = strtok($keywords_out , '?'); //Remove stuff after the '?' 

} 

也許你立刻就能看到什麼錯在這裏。如果是這樣,請幫助我。

回答

1

DOMDocument類將是最好的選擇

<?php 
$html='<video preload="auto" loop="loop" data-bindattr-3="3" src="https://mtc.cdn.vine.co/v/videos/03F598B7-40F8-4FD4-AB39-90AFC4FEDC4F-123-00000044D7291C03_1.0.6.mp4?versionId=sn7CV5wXJKJY_.CJcPHrsyLRDAtveQYw"></video>'; 
$dom = new DOMDocument; 
@$dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('video') as $tag) { 
     $link= $tag->getAttribute('src'); 
    } 
echo explode('?',$link)[0]; 

OUTPUT :

https://mtc.cdn.vine.co/v/videos/03F598B7-40F8-4FD4-AB39-90AFC4FEDC4F-123-00000044D7291C03_1.0.6.mp4