Ich versuche, Dateien mit der Funktion file_get_contents()
herunterzuladen.
Wenn der Speicherort der Datei jedoch http://www.example.com/some name.jpg
ist, kann die Funktion diese Datei nicht herunterladen.
Aber wenn die URL als http://www.example.com/some%20name.jpg
angegeben wird, wird dieselbe heruntergeladen.
Ich habe rawurlencode()
ausprobiert, aber dadurch werden alle Zeichen in der URL verdeckt und der Download schlägt erneut fehl.
Kann jemand bitte eine Lösung dafür vorschlagen?
Ich denke, das wird für Sie funktionieren:
%Vor%Ausgabe
%Vor%Hinweis:
Ich würde wahrscheinlich urldecode
und urlencode
dafür verwenden, da die Ausgabe für jede URL identisch wäre. rawurlencode
behält die +
auch dann bei, wenn %20
wahrscheinlich für die von Ihnen verwendete URL geeignet ist.
Wie Sie wahrscheinlich schon herausgefunden haben, sollte urlencode () nur für jeden Teil einer URL verwendet werden, die es zu umgehen gilt.
Von der Dokumentation für urlencode () übertragen Sie sie einfach auf den Bilddateinamen, der das Problem verursacht und lassen Sie den Rest der URL allein. In Ihrem Beispiel können Sie alles nach dem letzten Zeichen "/"
sicher verschlüsselnHier ist vielleicht eine bessere Lösung. Wenn Sie aus irgendeinem Grund eine relative URL wie:
verwenden// www.beispiel.de/pfad
Vor PHP 5.4.7 würde dies nicht das Array-Element [scheme] erzeugen, das die maček-Funktion auslöschen würde. Diese Methode kann auch schneller sein.
$url = '//www.example.com/path';
Tags und Links php urlencode file-get-contents