首页 > 解决方案 > 使用 copy() 或 file_get_contents() 获取名称中包含非英文字符的文件

问题描述

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

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 名称或将这个名称写入数据库,这个非英语字符会正确显示。如何强制此功能使用正确的编码?

标签: php

解决方案


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

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


推荐阅读