如何在php中使用file_get_contents获取视频网址

时间:2016-09-15 12:41:42

标签: php preg-match file-get-contents

我试图从另一个网站获取视频和海报 让我们称之为othersite.com

其他site.com有以下参数:

<div class="player">
    <div id="l_player" class='l-player' >
        <noscript>
            <video style="width:100%; height:100%;"
               controls="controls"
               autobuffer="autobuffer"
               class="player-html5"
               preload="metadata"
               poster="http://othersite.com/img.jpg">
                <source src="http://othersite.com/video.mp4" type="video/mp4">
            </video>
        </noscript>
    </div>  

使用下面的php我从opengraph标签获得了图像,但我试图获得我无法获得的mp4网址

$Agent  = array('http' => array('user_agent' => 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D)'));
$String = file_get_contents('http://www.othersite.com/'. $video .'/', false, stream_context_create($Agent) );
preg_match("/<source src=\"(.*)\" controls type=\"video\/mp4\"/", $String, $VideoURL);
$VideoURL = $VideoURL[1];
$IMG = getstring($String,'<meta property="og:image" content="','"');

我的php只是获取图片你是否知道我在preg_match中做错了什么以及如何获得http://othersite.com/video.mp4

1 个答案:

答案 0 :(得分:0)

这可以通过以下方式使用Preg_Match来完成。它非常简单,效果非常好!

$source = file_get_contents("That Page");

preg_match("'<source src=\"(.*?)\" type=\"video/mp4\">'si", $source, $match);
if($match) echo "result=".$match[1];

这应该做你想要的。

在最近的评论之后,我觉得我还应该补充说,si修饰符正在使这个正则表达式更加宽松。