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