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官方文档