You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用preg_match提取页面中的流媒体PK值?

Hey,我帮你调整了PHP代码,现在可以精准提取到你要的流媒体PK值啦。

问题分析

你的目标是从页面源码里提取enableVideo("5be02e45f5917b29199f8e5326499a6f8c6c7c9df86920b38c09bee46b050289")里的PK字符串,原来的代码有两个小问题:

  • HTTP请求头里的Referer和User-Agent没有正确分隔,服务器可能拒绝请求
  • 正则表达式的匹配逻辑不够精准,容易匹配到错误内容
调整后的PHP代码
<?php
// 修复HTTP请求头的分隔问题,用\r\n区分不同头字段
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Referer: http://www.ucaster.me/hembedplayer/shid05/1/1/1\r\n" . 
                    "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0"
    )
);

$url = file_get_contents('http://www.ucaster.me/hembedplayer/shid05/1/1/1', false, stream_context_create($opts));

// 调整正则,精准匹配enableVideo("PK值")的格式
preg_match('/enableVideo\("([a-f0-9]+)"\)/s', $url, $m);

// 提取并输出PK值
if(isset($m[1])){
    echo $m[1];
} else {
    echo "未找到PK值";
}
?>
关键修改点
  • HTTP头修复:在Referer和User-Agent之间添加\r\n,符合HTTP协议的头字段分隔要求,确保请求被服务器正常处理
  • 正则优化:直接匹配enableVideo("...")的格式,其中[a-f0-9]+专门匹配十六进制的PK字符串,避免无关内容干扰,匹配更精准
目标页面源码参考
<script type="text/javascript">
 var videoPlayer = document.createElement("video");
 videoPlayer.setAttribute("id", "videoplayer");
 videoPlayer.setAttribute("width", "580");
 videoPlayer.setAttribute("height", "450");
 videoPlayer.setAttribute("poster", "/static/images/logo.png");
 videoPlayer.setAttribute("autoplay", true);
 videoPlayer.setAttribute("controls", "");
 var em = document.createElement("em");
 em.innerHTML = "Sorry, your browser doesn't support HTML5 video.";
 videoPlayer.appendChild(em);
 document.getElementById("player_div").appendChild(videoPlayer);
 function setupVideo() {
 if (Hls.isSupported()) {
 var video = document.getElementById('videoplayer');
 var player = new Hls();
 player.attachMedia(video);
 player.on(Hls.Events.MEDIA_ATTACHED, function () {
 var hlsUrl = "http://" + ea + ":8088/live/shid04/playlist.m3u8?id=95328&pk=";
 hlsUrl = hlsUrl + enableVideo("5be02e45f5917b29199f8e5326499a6f8c6c7c9df86920b38c09bee46b050289");
 player.loadSource(hlsUrl);
 player.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
 video.play();
 });
 });
 }else {
 em.innerHTML = "Sorry, your browser doesn't support HTML5 video.";
 }
 }
</script>

内容的提问来源于stack exchange,提问作者ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:48:25