Avatar ·

Wie speichert man ein Bild von einer URL in PHP? Funktion funktioniert nicht mit einigen Bildern

Hallo zusammen. Ich bin ein Anfänger in PHP und habe ein Problem beim Speichern von Bildern von externen URLs. Ich schreibe einen einfachen Parser zum Herunterladen von Benutzeravataren.\n\nIch habe diesen Code:\n\n```php\n$url = 'https://example.com/avatar.jpg';\n$image = file_get_contents($url);\nfile_put_contents('avatars/user1.jpg', $image);\n```\n\nMit einigen Websites funktioniert das, mit anderen jedoch nicht – es wird eine leere Datei zurückgegeben oder ein Fehler. Ich habe verschiedene Ansätze ausprobiert:\n\n1. Ich habe `copy($url, $local_path)` verwendet – funktioniert auch nicht immer.\n2. Ich habe es mit CURL versucht, aber das war noch verwirrender.\n3. Einige Bilder werden beschädigt gespeichert (lassen sich nicht öffnen).\n\nIch vermute, dass das Problem darin liegt, dass der Server direkte Anfragen blockieren könnte oder User-Agent-Header benötigt. Mir ist auch aufgefallen, dass wenn die URL kyrillische Zeichen oder p enthält