phpQuery解析HTML乱码问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值