PHP 远程调用 HTTPS 网址内容乱码解决方法
PHP 远程调用 HTTPS 网址内容乱码解决方法
在使用 PHP 远程调用 HTTPS 网址内容并将其保存到另一个 PHP 文件时,可能会遇到生成的 PHP 文件编码为 GB2312,导致页面中的中文显示为乱码的问题。
以下方法可以帮助你解决这个问题:
1. 指定远程调用编码为 UTF-8
在使用 file_get_contents 函数远程获取内容时,可以指定编码为 UTF-8:
$content = file_get_contents('https://www.example.com', false, stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
'http' => [
'header' => 'Content-Type: text/html; charset=UTF-8',
],
]));
2. 在生成的 PHP 文件中指定编码为 UTF-8
在生成的 PHP 文件中,使用 header 函数指定编码为 UTF-8:
header('Content-Type:text/html; charset=UTF-8');
3. 使用 iconv 函数转换编码
如果以上方法仍然无法解决乱码问题,可以尝试使用 iconv 函数将编码转换为 GB2312:
$content = iconv('UTF-8', 'GB2312//IGNORE', $content);
注意在转换时加上 //IGNORE 避免出现无法转换的字符导致脚本中断。
通过以上方法,你就可以解决 PHP 远程调用 HTTPS 网址内容后生成的 PHP 文件中文乱码的问题。
原文地址: https://www.cveoy.top/t/topic/lDhG 著作权归作者所有。请勿转载和采集!