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

如何从PHP cURL返回的混合内容中提取AJAX内的三个JS参数值

实现方案

通过正则表达式限定匹配范围后提取目标参数,稳定性高,代码如下:

// 先定位到$.ajax配置内的data字段块,s修饰符支持匹配多行内容
if (preg_match('/\$\.ajax\(\{.*?data:\s*\{(.*?)\},/s', $result, $data_block)) {
    $data_content = $data_block[1];
    // 分别提取三个参数值
    preg_match('/tracking:\s*"([^"]+)"/', $data_content, $track_res);
    preg_match('/timestamp:\s*(\d+)/', $data_content, $time_res);
    preg_match('/hash:\s*"([^"]+)"/', $data_content, $hash_res);

    // 赋值到指定PHP变量,增加容错处理避免匹配失败报错
    $data_tracking = $track_res[1] ?? '';
    $data_timestamp = isset($time_res[1]) ? intval($time_res[1]) : 0;
    $data_hash = $hash_res[1] ?? '';
}

逻辑说明

  • 先匹配提取$.ajax配置内的data字段的所有内容,避免页面其他位置出现同名字段导致匹配错误
  • 三个正则分别对应三个参数的格式特征:tracking和hash为双引号包裹的字符串,timestamp为纯数字,正则自动忽略冒号后的空格,适配不同的JS代码缩进格式
  • 内置容错处理,匹配失败时变量默认赋值为空/0,不会抛出PHP警告

内容的提问来源于stack exchange,提问作者i need help

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 00:45:06