php - 尝试拆分 cURL 会话结果返回的 html 标记(curl_exec)
问题描述
所以我试图拆分 cURL 会话结果(curl_exec)返回的 HTML 标记。请帮忙
我试过的:
1 - preg_split
/* cURL initializations....*/
$result = curl_exec($ch);
$load_time = preg_split('//[@class="embedmain"]/.embedFooter/b', $result);
echo $load_time;
输出:False
带有警告preg_split(): Unknown modifier '['
2 - 使用 DOMDocument 进行 HTML 解析
/* cURL initializations....*/
$result = curl_exec($ch);
$doc = new DOMDocument;
$doc->loadHTML($result);
$xpath = new DOMXpath($doc);
$node = $xpath->query('//[@class="embedmain"]/.embedFooter/b')->item(0);
$load_time = (isset($node->textContent) && strlen($node->textContent) > 1 ? $node->textContent : '0.0ms');
echo $load_time;
输出:
Warning: DOMXPath::query(): Invalid expression
Warning: DOMXPath::query(): Invalid expression
Fatal error: Call to a member function item() on boolean
看起来 xpath 的查询无效。
解决方案
您不想将正则表达式用于这样的事情,也不想使用字符串函数。像你开始做的那样使用解析器和 xpath。
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$bold = $xpath->query('//div[@class="embedmain"]/div[@class="embedFooter"]/b')[0]->nodeValue;
echo $bold;
推荐阅读
- javascript - 配方格式化
- ios - SwiftUI Widget 在构建到设备或模拟器时为空
- reactjs - 使用路由器和不使用服务器部署 React js
- .net - Dotnet - 无法安装任何全局工具
- amazon-web-services - AWS:如果只有弹性 IP 与目标组中的实例相关联,则文件从 EC2 保存到 S3。其他文件不写
- javascript - 如何在请求后捕获错误(消息)
- javascript - D3.min 不返回最小值
- python - 估计拍摄图像的高度
- python - 无法解析文件 saved_model.pb:解析消息时出错
- flutter - 颤振列表视图构建器显示所选名称的 id