如何在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中正确且可靠地保存图片?