从另一个网页获取特定项目

时间:2014-03-01 20:09:45

标签: php html preg-match

我需要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 个答案:

答案 0 :(得分: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