简述PHP fopen 读取带中文URL地址
来源:爱站网时间:2019-11-27编辑:网友分享
PHP fopen 读取带中文URL地址的方法,它的作业就在于小偷收集等功能,今天爱站技术频道小编就为大家带来了这方面的知识,感兴趣的话就随小编一起来了解下吧!
PHP fopen 读取带中文URL地址的方法,它的作业就在于小偷收集等功能,今天爱站技术频道小编就为大家带来了这方面的知识,感兴趣的话就随小编一起来了解下吧!
例如下面这种情况:
复制代码 代码如下:
$files = fopen('http://www.website.com/我的PP.jpg', 'rb');
那“$files”的返回值将会是“False”。首先我想到的是将URL用urlencode编码一下,发现还是不行,原来urlencode会把“:”、“/”字符也编码了,那URL就不是URL了。呵,说得有些绕口,那就把“:”、“/”字符的编码替换回来就应该行的。
复制代码 代码如下:
$url = 'http://www.website.com/我的PP.jpg';
$url = preg_replace('/\%3A/i', ':', preg_replace('/\%2F/i', '/', urlencode(urldecode($url)))); $file = fopen($url, 'rb');
试试,嘿~还真是行了。下面再温习一下fopen()函数:
fopen() 函数打开文件或者URL。 如果打开失败,本函数返回FALSE。 打开成功,本函数返回TRUE。
一、语法:
参数 | 描述 |
filename | 规定要打开的文件或 URL。 |
mode | 规定要求到该文件/流的访问类型。可能的值见下表。 |
include_path | 如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。 |
context | 规定文件句柄的环境。Context 是可以修改流的行为的一套选项。 |
以上是简述PHP fopen 读取带中文URL地址介绍,对于这方面有想法的朋友们,一定要学习上文的方法,一定可以帮助大家更好的学习。