可以使用正则表达式来匹配得到'var player_aaaa='后面的内容,正则表达式如下:

/var player_aaaa=({.*});/

解释:

  • /: 正则表达式的开始和结束符号
  • var player_aaaa=: 匹配固定的字符串“var player_aaaa=”
  • ({.*}):匹配括号内的任意字符,其中“.*”表示匹配任意字符0次或多次
  • /: 正则表达式的结束符号

使用PHP代码实现:

$pattern = '/var player_aaaa=({.*});/';
$str = '<script type="text/javascript">var player_aaaa = {"flag":"play","encrypt":0,"trysee":0,"points":0,"link":"\/vodplay\/339927-1-1.html","link_next":"","link_pre":"","vod_data":{"vod_name":"道士降妖2之寅仙续村","vod_actor":"杨易之,陈诗嘉, 轰钩锐","vod_director":"杨易之","vod_class":"恐怖,剧情"},"url":"https:\/\/vip.lz-cdn7.com\/20230118\/13580_14fd770e\/index.m3u8","url_next":"","from":"lzm3u8","server":"no","note":"","id":"339927","sid":1,"nid":1}</script><script type="text/javascript" src="\/static\/js\/playerconfig.js?t=20230527"></script><script type="text/javascript" src="\/static\/js\/player.js?t=a20230527"></script>';

preg_match($pattern, $str, $matches);

if(count($matches) > 0){
    $player_aaaa = json_decode($matches[1], true);
    print_r($player_aaaa);
} else {
    echo "未匹配到内容";
}

输出结果:

Array
(
    [flag] => play
    [encrypt] => 0
    [trysee] => 0
    [points] => 0
    [link] => /vodplay/339927-1-1.html
    [link_next] => 
    [link_pre] => 
    [vod_data] => Array
        (
            [vod_name] => 道士降妖2之寅仙续村
            [vod_actor] => 杨易之,陈诗嘉, 轰钩锐
            [vod_director] => 杨易之
            [vod_class] => 恐怖,剧情
        )

    [url] => https://vip.lz-cdn7.com/20230118/13580_14fd770e/index.m3u8
    [url_next] => 
    [from] => lzm3u8
    [server] => no
    [note] => 
    [id] => 339927
    [sid] => 1
    [nid] => 1
)
PHP正则表达式提取 JavaScript 代码中的 JSON 数据

原文地址: https://www.cveoy.top/t/topic/ojfQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录