2017-05-18 1 views
0

baute ich ein PHP-Skript, das & zeigt ein IMG-Tag wie folgt dynamisch erzeugt:Lassen Sie für Groß- und Klein in <img tag from PHP Variable & file extension

<img src=/img/{$row['Invl_InventoryNumber']}.BMP> 

Das hat super funktioniert auf einem Windows-Server, auf dem Groß- und Klein war kein Problem.

Wir haben das Skript nach Linux verschoben und festgestellt, dass die Dateien sowohl .BMP- als auch .bmp-Dateierweiterungen haben UND auch die $ row ['Invl_InventoryNumber] -Variable alphabetische Werte enthält, die ebenfalls Großbuchstaben sind.

Beispiel: RZP.bmp OR rzp.bmp OR RZP.BMP OR RzP.bmp OR Rzp.BMP etc, etc.

ich keine Kontrolle über das Namensschema der Dateien haben, werden sie durch ein geschaffenes Mensch aber muss/suchen nach übereinstimmenden Dateinamen. Ich dachte an irgendeine CASE- oder if/elsif-Anweisung, war mir aber nicht sicher, ob es eine bessere Möglichkeit gibt, den Wert auszulösen, um alle Möglichkeiten zu prüfen.

+0

Der bessere Weg ist es, alles in camelCase zu codieren (Vars, Funktionsnamen, Dateien usw.) - das stellt sicher, dass egal was env ist, dass es funktioniert – ThisGuyHasTwoThumbs

+2

Kannst du den Dateinamen nicht in der Datenbank speichern, anstatt nur zu raten, was der Dateiname sein könnte? –

+0

Da Sie zu Linux umgezogen sind, könnten Sie ein schnelles Skript verwenden, um die Dateierweiterungen zu ändern ist einfach genug. http://stackoverflow.com/questions/11818408/convert-all-file-extensions-to-lower-case –

Antwort

0

Dies ist eine Einschränkung von einigen Unix-Betriebssystemen;

Also, ich schlage vor, dass Sie Ihre Dateien standardisieren oder speichern Sie den gleichen Namen (wenn vorhanden) in Ihrer Datenbank.

Sie können jedoch versuchen, "mod_speling" zu verwenden, wenn Sie Ihre Seiten mit Apache bedienen.