PHP下preg_replace_callback匹配中文的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

PHP下preg_replace_callback匹配中文的问题

2016-06-17 16:29:02 1750 1

代码:

$html = preg_replace_callback("/(?<chinese>[\x{4e00}-\x{9fa5}]+)/u",array("self","wyc_chinese"),$html);
...
省略
...
public function wyc_chinese($matches)
{       
    return $matches['chinese'].'(Chinese)';
}

问题:
$html为要提取的网页数据
如果$html是utf8编码的,则以上代码能正常执行(即能正常提取中文),但如果是其他编码的,则没法正常执行(无法匹配到汉字)
使用iconv转换$html的编码格式,也无法正常提取中文。

PHP
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:43:03

    <meta charset="utf-8">来识别编码是错误的.有些网页没有写meta,对于现代浏览器也会正常显示的(IE6有问题,IE7,IE8没测~)
    应该根据HTTP响应头Content-Type: text/html; charset=UTF-8来判断.如果没有返回charset,就根据内容来自行判断了..
    为了方便,最好将html转换为UTF-8来进行正则匹配.
    screenshot

    0 0
相关问答

1

回答

使用php 向mysql 插入中文乱码

2018-06-24 22:10:55 509浏览量 回答数 1

1

回答

PHP如何读取WEB服务器上的JS文件源代码,报错

2020-06-20 21:30:31 2444浏览量 回答数 1

1

回答

PHP 读取TXT文件的相关问题,报错

2020-06-20 21:31:25 2498浏览量 回答数 1

1

回答

网站默认的首页 index.php 能访问,但是文件里面找不到这个文件。。

2018-12-13 20:25:57 763浏览量 回答数 1

1

回答

首页index.php文件没有放到htdocs文件夹根目录下 出现403错误

2018-10-12 20:49:10 1240浏览量 回答数 1

1

回答

在浏览器中打开php文件时,是Linux中的哪个用户执行的?

2017-11-30 17:36:53 1722浏览量 回答数 1

0

回答

如何通过IIS7.5和php.ini配置文件调整网站后上传文件大小限制

2017-11-02 15:04:04 2396浏览量 回答数 0

8

回答

文件存贮在阿里云的OSS,PHP怎么实现多文件打包下载?

2017-03-10 11:14:31 11956浏览量 回答数 8

1

回答

新建PHP的utf-8无dom文件,关了再打开变成ANSI了,怎么办?

2016-06-14 14:25:47 2267浏览量 回答数 1

1

回答

关于在linux中定时执行php文件的问题!

2016-06-13 11:00:26 1637浏览量 回答数 1
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载