提问者:小点点

PHP file_get_contents()汉字错误代码


我使用file_get_contents()下载一个JSON。 网址里有些汉字,我试着把网址打印出来,没问题。 但是当我运行程序时,我放在函数中的URL变成了错误代码。 我怎么知道这个URL链接到一个JSON,这个JSON链接到一个MySQL请求,在MySQL的控制台中,我看到这个URL变成了错误代码。 我尝试了许多方法将URL字符串更改为UTF-8或GB2312等,但没有一种方法有效。 我希望能在这里得到帮助,谢谢。


共1个答案

匿名用户

很难理解你的问题。 我想我理解了你问题的第一部分:

我使用file_get_contents()下载一个JSON。 网址里有些汉字,我试着把网址打印出来,没问题。 但是当我运行程序时,我放在函数中的URL变成了错误代码。

您尝试使用file_get_contents()访问包含汉字的URL:

对此的答案是:

您需要使用urlencode()rawurlencode()对url中包含汉字的部分进行编码。

urlencode()rawurlencode()之间的主要区别在于,urlencode()将空格转换为+RawurlenCode()将空格转换为%20

urlencode用于查询参数,例如?q=my+search+key,在其他任何情况下都使用rawurlencode

示例:

$test = 'http://www.example.com/'.rawurlencode('以怎么下载').'.html';
print_r($test);
// $html = file_get_contents($test);

// output:
http://www.example.com/%E4%BB%A5%E6%80%8E%E4%B9%88%E4%B8%8B%E8%BD%BD.html

我希望它能解决你的问题。