Avatar ·

如何在PHP中从URL保存图片?函数对某些图片无效

大家好。我是PHP新手,在从外部URL保存图片时遇到了问题。我正在编写一个简单的解析器来下载用户头像。 我有这样的代码: ```php $url = 'https://example.com/avatar.jpg'; $image = file_get_contents($url); file_put_contents('avatars/user1.jpg', $image); ``` 对某些网站有效,但对其他网站无效——返回空文件或错误。我尝试了不同方法: 1. 使用 `copy($url, $local_path)` ——也不总是成功。 2. 尝试通过CURL,但更混乱了。 3. 有些图片保存后损坏(无法打开)。 我怀疑问题在于服务器可能阻止直接请求或需要User-Agent头。我还注意到,如果URL中包含西里尔字符或空格,则完全无法工作。 以下是一个无法工作的URL示例: ``` https://site.com/фото/аватарка пользователя.jpg ``` 请告诉我如何在PHP中正确且可靠地保存图片?