You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP爬虫抓取Facebook泰语用户名出现编码乱码如何解决?

问题根因
  • 当前返回的เ格式内容为HTML十六进制实体编码,你之前使用的mb_convert_encoding函数不支持直接解析该类实体,因此无法转为可读泰语字符
  • 原代码中还存在语法错误:get请求配置项的headers数组缺少闭合右方括号
修复代码
$url = "https://www.facebook.com/7elevenqueen";

$client = new Client();
// 补全缺失的数组闭合括号
$response = $client->get($url, ['headers' => ['User-Agent' => 'spider']]);

preg_match_all('/<meta([^>]+)content="([^>]+)>/', $response->getBody(), $getData);

$rawContent = str_replace('&amp;', '&', substr($getData[2][9], 0, -3));
// 使用html_entity_decode解析HTML实体,指定UTF-8编码输出
$name = html_entity_decode($rawContent, ENT_QUOTES | ENT_HTML5, 'UTF-8');
优化建议

不推荐用正则匹配HTML标签内容,页面结构稍有变动(比如meta标签顺序调整)就会导致$getData[2][9]索引失效,可改用PHP内置的DOMDocument类解析DOM结构,精准匹配需要的meta标签属性。

内容的提问来源于stack exchange,提问作者ferdinand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:15:04