使用PHP file_get_contents获取

时间:2017-09-06 18:09:28

标签: php json curl file-get-contents

我有这个链接

view-source:http://abcast.net/embed.php?file=klaci16&width=750&height=450 

我想从其他php页面上的页面中仅获取m3u8属性

例如,我从链接中得到了这个:

player = videojs("Player", {
                    "sources"   : [ { "type": "application/x-mpegURL", "src": "http://live.abcast.net:8081/edge/verc9f615461d48dd8b44c84e0b87c50894/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9OS82LzIwMTcgNTo1OToxOCBQTSZoYXNoX3ZhbHVlPVVPTElSQ3V4NENKM0FoQUhRUWJIYUE9PSZ2YWxpZG1pbnV0ZXM9MTIw" } ],
                    "techOrder" : [ "html5", "flash" ],

我想在其他php页面上只使用此属性

http://live.abcast.net:8081/edge/verc9f615461d48dd8b44c84e0b87c50894/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9OS82LzIwMTcgNTo1OToxOCBQTSZoYXNoX3ZhbHVlPVVPTElSQ3V4NENKM0FoQUhRUWJIYUE9PSZ2YWxpZG1pbnV0ZXM9MTIw

有什么帮助吗?我尝试了这段代码但是没有工作

<?php
$url="http://abcast.net/embed.php?file=klaci16";

$html = file_get_contents($url);

$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = $doc->getElementsByTagName('player');

foreach ($tags as $tag) {
      echo $lol=$tag->getAttribute('src');
}
?>

1 个答案:

答案 0 :(得分:-1)

步骤1.使用strpos搜索字符串以查找'videojs(“播放器”' - 针

步骤2.使用substr

从针的位置移除字符串中的所有内容

可选步骤:找到videojs的最后一个结束标记 - 类似于“);”并使用substr

删除剩余数据

步骤3.此时你可以使用分隔符的爆炸作为“(有点hackish)

步骤4.现在,这将为您提供一个包含在“”

中的每个参数的数组

步骤5.您现在可以访问该阵列获取所需数据。

<?php
    $url="http://abcast.net/embed.php?file=klaci16";

    $html = file_get_contents($url);
    $find = 'videojs("Player", ';
    $pos = strpos($html,$find);

    $html = substr($html, $pos+$find,-1); // Position + amount of characters of the needle
    $html = explode('"', $html);
    print_r($html); // What's the key?
    echo $html[11]; // 11 = http://live.abcast.net:8081/edge/verc9f615461d48dd8b44c84e0b87c50894/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9OS82LzIwMTcgNTo1OToxOCBQTSZoYXNoX3ZhbHVlPVVPTElSQ3V4NENKM0FoQUhRUWJIYUE9PSZ2YWxpZG1pbnV0ZXM9MTIw
?>