【问题标题】:How to get mp4 url on source page?如何在源页面上获取 mp4 url​​?
【发布时间】:2019-05-28 01:53:52
【问题描述】:

我的页面源有这个html(js):

<script>
playlist.sources.push({
    label: "480p",
    source: "//zingtv-video-14.zadn.vn/Video480/2016/0418/7c/1f1fd73f7432d7524cb43b57da35d6df.mp4?authen=exp=1559094603~acl=1f1fd73f7432d7524cb43b57da35d6df~hmac=01da84812b2ef7d43e55be79fa3ef56e",
    index: 1
});</script>


我想得到:

//zingtv-video-14.zadn.vn/Video480/2016/0418/7c/1f1fd73f7432d7524cb43b57da35d6df.mp4?authen=exp=1559094603~acl=1f1fd73f7432d7524cb43b57da35d6df~hmac=01da84812b2ef7d43e55be79fa3ef56e

我的代码:

<?php
  // Check if the URL parameter for our proxy is set.
  if (!empty($_GET['url'])) {
    if (filter_var($_GET['url'], FILTER_VALIDATE_URL)) {
      $grabs = file_get_contents("{$_GET['url']}");


      $grab = json_decode($grabs, true);
// I don't know what to do next

      echo "{$video}" />";
    } else {
      echo "Given URL is not valid.";
    }
  } else {
    echo "You need to specify the URL.";
  }
?>

并显示在内容页面中。

我该如何解决这个问题?

【问题讨论】:

  • 对不起,我编辑了我的帖子,我想得到 //zingtv-video-14.zadn.vn/Video480/2016/0418/7c/1f1fd73f7432d7524cb43b57da35d6df.mp4?authen=exp=1559094603~ acl=1f1fd73f7432d7524cb43b57da35d6df~hmac=01da84812b2ef7d43e55be79fa3ef56e 来自带有php的html源代码,我需要php代码,如果你知道请给我源代码
  • 请展示您尝试过的内容。 i need php code 不是 SO 的工作方式。我们随时为您解决编码问题。
  • 我已经更新了文章,我不知道如何处理 $video 变量,所以我可以得到那个代码

标签: php regex string file-get-contents preg-match-all


【解决方案1】:

在这里,我们可以尝试使用preg_match_all 和一个简单的表达式:

source: "(.+)",

我们想要的输出保存在捕获组$1中。

测试

$re = '/source: "(.+)",/m';
$str = '<script>
playlist.sources.push({
    label: "480p",
    source: "//zingtv-video-14.zadn.vn/Video480/2016/0418/7c/1f1fd73f7432d7524cb43b57da35d6df.mp4?authen=exp=1559094603~acl=1f1fd73f7432d7524cb43b57da35d6df~hmac=01da84812b2ef7d43e55be79fa3ef56e",
    index: 1
});</script>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches[0][1]);

DEMO


我不太确定 file_get_content 是否可行:

$str = file_get_contents('https://tv.zing.vn/video/id/IWZBFE8U.html?t=388');
$str = mb_convert_encoding($str, 'HTML-ENTITIES', "UTF-8");
var_dump($str);

【讨论】:

  • 请再次帮助我,我需要从此页面获取 .mp4 sn-p,我尝试使用 loadHTMLFile 并使用您的代码但无法获取:tv.zing.vn/video/id/IWZBFE8U.html?t=388
  • @VõHữuNhân Emma 已回答您的问题。如何检索 mp4 文件不是这个问题的主题。您可能会遇到内存限制、违反 TOS 等问题。已回答检索字符串。另外请检查您的其他问题,如果其他问题已得到回答,请接受这些答案。
  • @Emma 我可能会更新答案以将.+",m 替换为[^"]+?"。这假设封装是一致的。结尾的逗号可以是可选的,因为最后一个元素不需要它。
  • 谢谢Emma帮我,谢谢user3783243,我会考虑的
  • @Emma 我不确定I need to get the .mp4 snippet 对我意味着什么,它正在检索视频的一部分。 source 也是一个 mp4 文件,所以我想他们想要那个。我不熟悉zing.vnzadn.vn 以及它们之间的关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2020-10-03
  • 2016-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
相关资源
最近更新 更多