Como salvar uma imagem de URL em PHP? Função não funciona com algumas imagens
Olá a todos. Sou novo em PHP e encontrei um problema ao salvar imagens de URLs externos. Estou escrevendo um parser simples para baixar avatares de usuários.
Tenho este código:
```php
$url = 'https://example.com/avatar.jpg';
$image = file_get_contents($url);
file_put_contents('avatars/user1.jpg', $image);
```
Com alguns sites funciona, mas com outros não – retorna um arquivo vazio ou erro. Tentei diferentes abordagens:
1. Usei `copy($url, $local_path)` – também nem sempre funciona.
2. Tentei via CURL, mas aí tem ainda mais confusão.
3. Algumas imagens são salvas corrompidas (não abrem).
Suspeito que o problema é que o servidor pode bloquear requisições diretas ou exige headers User-Agent. Também notei que se a URL tem caracteres cirílicos ou espaços, nada funciona.
Aqui está um exemplo de URL que não funciona:
```
https://site.com/фото/аватарка пользователя.jpg
```
Diga-me como salvar imagens de forma correta e confiável em PHP?