【问题标题】:Get data from inside script and pass it to plain text with php?从脚本内部获取数据并使用 php 将其传递给纯文本?
【发布时间】:2018-08-15 01:55:53
【问题描述】:

基本上我想从外部 HTML 页面的脚本标签内部获取数据,

例子:

<script type="text/javascript">
var playerInstance = jwplayer("jwplayer");
    playerInstance.setup({
    id:'jwplayer',
    width: "100%",
    height: "100%",
    aspectratio: "16:9",
    fullscreen: "true",
    primary: 'html5',
    provider: 'http',
    autostart: false,
    sources: [{"type":"video/mp4","label":360,"file":"MY-VIDEO-LINK"},{"type":"video/mp4","label":480,"file":"MY-VIDEO-LINK"}],
});

我只想要黑标:>> 来源:[{"type":"video/mp4","label":360,"file":"MY-VIDEO-LINK"},{"type":"video/mp4","label" :480,"file":"MY-VIDEO-LINK"}]

我可以使用 PHP 访问该页面:
$url = 'http://my-external-site.com/embed.php?url=blahblahblah';

我已经尝试过 Curl,没有运气,还有 DOM,差不多了:

include_once('simple_html_dom.php');
$html = file_get_html($url);
$elem = $html->find('sources', 0); //tried with 'sources' but probably is wrong
echo $elem;

非常感谢您的帮助,在此先感谢!

【问题讨论】:

    标签: php json dom


    【解决方案1】:

    在没有 simple_html_dom 的情况下尝试以下代码。已编辑

    $url = 'YOUR_URL';
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10');
    $html = curl_exec($curl);
    curl_close($curl);
    $dom = new DOMDocument();
    @$dom->loadHTML($html);  //convert character asing
    $xpath = new DOMXPath($dom);    
    $script = $xpath->query ('//script[contains(text(),"sources:")]')->item (0)->nodeValue;
    
    $json = end(explode( 'sources:', $script));
    $json = explode ( ']', $json)[0].']';
    
    echo $json 
    

    希望对你有帮助

    【讨论】:

    • 它只返回] 并且需要一些时间来加载。
    • 如果你 echo $script 的结果和你的 javascript 代码一样吗?
    • 你能分享你的网址吗?您可以在几分钟后删除它
    • 你有链接吗?
    • 现在在$url
    猜你喜欢
    • 2013-08-21
    • 2021-10-01
    • 1970-01-01
    • 2013-02-22
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2017-02-12
    相关资源
    最近更新 更多