Hallo,
ich habe ein kleines Script, mit dem ich per PHP Bilder von Nummernschildern generieren lasse. Dabei sollen einmal erstellte Grafiken zum späteren Aufruf gespeichert werden. Das logischste ist mir dabei, die Aufschrift des Nummernschildes gleich für den Dateinamen zu verwenden. Das Problem sind nun die Sonderzeichen, die ja dabei vorkommen, hier konkret Leerzeichen, Doppelpunkt und Bindestrich. Die Aufzählung soll aber prinzipiell erweiterbar bleiben.
Ein Beispiel:
Die Aufschrift lautet: "A:L 4"
zur Umwandlung in einen nutzbaren Dateinamen nutze ich
$text = urlencode($text);
Das funktioniert auch sehr gut. Hier ist der Dateiname dann A%3AL+4.png.
Nun will ich die Datei wie folgt anzeigen:
$text = urlencode($text);
echo "<img width='175' height='37' src='pics/$text.png' alt='[$text]'/>";
Das Bild wird jetzt aber nicht angezeigt. Nach mehrerem Experimentieren fiel es mir wie Schuppen von den Augen, dass die vorher kodierten Zeichen automatisch umgewandelt werden. Doch dann stimmen sie ja nicht mehr mit dem Dateinamen überein, der immer noch "urlencode" ist.
Gebe ich im Browser die Adresse des Bildes ein, erscheint:
Forbidden
You don't have permission to access pics/A:L+4.png on this server.
Ich will ungern alle möglichen Sonderzeichen mit einer eigenen Funktion in ein kompliziertes Format bringen, weiß aber keine andere Form, in die ich die Sonderzeichen bei der Speicherung umwandeln und später wieder auslesen kann.
Übrigens gibt file_exists(Pfad/Dateiname)
TRUE aus. Gibt es denn eine Möglichkeit, Grafikdateien anders als mit <img> zuverlässig anzuzeigen?
Danke