使用copy()或file_get_contents()获取名称中包含非英语字符的文件

时间:2018-05-28 17:30:09

标签: php

我正在尝试抓取一个文件,然后以这种方式将其保存到服务器文件夹中:

copy('http://domain.name/image-with-ø-symbol.jpg', $local_path);

或:

file_put_contents($local_path, file_get_contents('http://domain.name/image-with-ø-symbol.jpg'));

但是ø符号导致了这个错误:

PHP Warning:  file_get_contents('http://domain.name/image-with-Гё-symbol.jpg'): failed to open stream: HTTP request failed!

因此它以某种方式从“ø”转换为“Гё”,但是如果我试图显示此jpg名称或将此名称写入数据库,则此非英语字符会正确显示。如何强制此函数使用正确的编码?

1 个答案:

答案 0 :(得分:1)

使用一些URL编码(如urlencode())函数来获取正确的值:

http://domain.name/image-with-%C3%B8-symbol.jpg