• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

String auf bestimmte Zeichenkette überprüfen bzw. ob Variable URL zu Bild enthält

xSTVNx

Mitglied
Ich habe folgenden Code

PHP:
if( !empty($thumb) ){    
  $up_thumb = "'".$thumb."'";
} else {   
  $up_thumb = "null";
}

Ich möchte nun aber noch prüfen, ob $thumb (am Ende?) .jpg, .jpeg, .JPG, .JPEG, .png oder .PNG enthält, wenn nicht soll $up_thumb ebenfalls null annehmen.

Welche Funktion bzw. welcher Ansatz eignet sich dafür?

Danke!
xSTVNx
 
Werbung:
strpos() z.B.

Allerdings würde ich eher hinterfragen, was Du genau prüfen willst? Ob eine Datei tatsächlich ein Bild ist? Das solltest Du nicht durch Prüfung des Dateinamens testen sondern mit Bild-Funktionen von PHP.
 
Wenn du überprüfen willst, ob eine Bilddatei auch wirklich ein Bild ist, reicht es nicht, die Extension zu überprüfen. Du solltest überprüfen, ob es sich beim Inhalt der Datei auch um ein Bild handelt. Das Einfachste ist, die Dimensionen der Datei mit der GD-Lib zu erfassen. Falls es ein Bild ist, gibt die Funktion auch Dimensionen zurück. Wenn du dich vergewissern willst, dass das Bild deinen Server nicht schaden kann (beispielsweise gibt es Server, die PHP-Code auch in .png-Dateien ausführen), solltest du das Bild durch imagepng/imagegif/imagegif usw. abspeichern lassen.

Ansonsten kannst du so arbeiten:

PHP:
preg_match('/(\.jpg)|(\.png)|(\.jpeg)$/i', $dateiname);
 
Werbung:
strpos() z.B.

Allerdings würde ich eher hinterfragen, was Du genau prüfen willst? Ob eine Datei tatsächlich ein Bild ist? Das solltest Du nicht durch Prüfung des Dateinamens testen sondern mit Bild-Funktionen von PHP.

Also, zu Prüfen ob die Datei auch wirklich ein Bild ist wäre ideal! Allerdings liegt die Datei nicht auf meinem Server. Ist das ein Problem?

Ich hoffe heir bin ich richtig? :)
PHP: GD- und Image-Funktionen - Manual

Das Einfachste ist, die Dimensionen der Datei mit der GD-Lib zu erfassen. Falls es ein Bild ist, gibt die Funktion auch Dimensionen zurück.

Du meinst diese Funktion oder?
PHP: getimagesize - Manual


Wenn du dich vergewissern willst, dass das Bild deinen Server nicht schaden kann (beispielsweise gibt es Server, die PHP-Code auch in .png-Dateien ausführen), solltest du das Bild durch imagepng/imagegif/imagegif usw. abspeichern lassen.

Danke für den Hinweis! Dann bräuchte ich getimagesize() allerdings nicht, bzw. imagepng() und co. würden jeweils reichen. Oder habe ich evtl. einen Denkfehler?
 
Hängt davon ab, was du machen willst. Wenn es hier um 'nen Fileupload geht, dann hast du Recht.

Allerdings merke ich gerade, dass getimagesize() eine Notice/Warning wirft, wenn das Bild nicht valide ist. Da wirst du mit FileInfo Vorarbeit leisten müssen.
 
Zurück
Oben