phpQuery解析HTML( $dom = new DOMDocument(); )在有html头部时会去识别查询<meta
charset=“字符编码”>,对按charset编码去解析,但部分html的编码声明是使用<meta
http-equiv=“content-type” content=“text/html; charset=字符编码” />
这个时候只需要对要解析的内容拼接“<meta charset=“字符编码”>”即可;
<?php
date_default_timezone_set("PRC");
require 'script/phpQuery.php';
require 'script/QueryList.php';
use QL\QueryList;
$html = file_get_contents('20201214100823_booking.html');
// 采集规则
$rules = [
// 文章标题
'title' => ['.sr-hotel__title>a:eq(0)>span:eq(0)','text'],
// // 文章链接地址
// 'link' => ['a:eq(0)','href'],
// // 文章缩略图
// 'img' => ['img:eq(0)','src'],
// // 文章简介
// 'summary' => ['p:eq(0)','text']
];
$range = '#hotellist_inner>div';
$html = '<meta charset="UTF-8">'.$html;
$data = QueryList::Query($html,$rules,$range)->data;
print_r($data);
其他乱码解析方案请移至PHPQuery官方文档
原文:https://blog.csdn.net/qq_35606400/article/details/111152424