Worrel: Regulärer Ausdruck klappt nicht

Ich versuche, bei eingelesenen Dateinamen die Endung auf .jpg zu ändern. Dazu habe ich einen regulären Ausdruck geschrieben :

$name = preg_replace ("/(.*[.]).{3}/", "\1jpg", $name);

Dieser tut jedoch nicht, was er soll, sondern schneidet die Endung samt Punkt ab. (?)

thx fo rhelpl,
Worrel

  1. Tag, <-- sowas nennt man eine Begruessung,

    Ich versuche, bei eingelesenen Dateinamen die Endung auf .jpg zu
    ändern. Dazu habe ich einen regulären Ausdruck geschrieben :

    $name = preg_replace ("/(.*[.]).{3}/", "\1jpg", $name);

    Dieser tut jedoch nicht, was er soll, sondern schneidet die Endung
    samt Punkt ab. (?)

    Sinnvoller und einfacher waere dieser Ausdruck:

    $name = preg_replace('![^.]{3}$!','jpg',$name);

    Ersetze die letzen drei Zeichen eines Strings durch 'jpg', solange sie
    etwas anderes sind als Punkte.

    Gruesse,
     CK

  2. hi,

    /(.*[.]).{3}/

    teste das mal, Du willst ja nur die Endung ersetzen:

    $alt   = "/lala/lulu.gif";
    $match =  "/.[a-zA-Z]{3}$/";
    $neu   =  preg_replace ($match, ".jpg", $alt);
    echo $neu;

    Gruesse  Joachim

  3. Ich Depp !
    Ich habe die Variable vor der Ausgabe noch auf einen anderen Wert gesetzt, diese Zeile doch jetzt erst gefunden.
    Funktionieren tun alle drei Variationen.

    Danke für die schnelle Hilfe,
    Worrel

  4. Moin!

    Ich versuche, bei eingelesenen Dateinamen die Endung auf .jpg zu ändern. Dazu habe ich einen regulären Ausdruck geschrieben :

    $name = preg_replace ("/(.*[.]).{3}/", "\1jpg", $name);

    Dieser tut jedoch nicht, was er soll, sondern schneidet die Endung samt Punkt ab. (?)

    Ich frage mich, welcher Hintergedanke bei deiner Aktion dabei ist. Einfach nur die Dateiendung verändern ändert nicht das Dateiformat. Aber den Mime-Typ. Welcher vom Internet Explorer meist mißachtet wird, so daß dennoch der wahre Dateiinhalt aktiv wird.

    Also: Wozu die Dateiendung ändern? Mir fällt da eigentlich nur eine Möglichkeit ein: Der Benutzer kann einen Dateinamen für eine zu erstellende Grafikdatei eingeben, und es soll verhindert werden, daß er .jpg vergißt anzuhängen, oder .gif, .txt oder .exe draus macht.

    Je nach Anwendungsfall ist der mögliche Input des regulären Ausdrucks durchaus unterschiedlich, und ich würde auch sagen, daß sich der reguläre Ausdruck selbst unterscheiden kann. Oder es sich eine ganz andere Lösung anbietet.

    - Sven Rautenberg

    1. Ich frage mich, welcher Hintergedanke bei deiner Aktion dabei ist.

      Ganz einfach:
      Ich verarbeite EPS Dateien in ein Internetfähiges Format (via Photoshop). Die ursprünglichen Dateinamen werden in einer Datenbank gespeichert. Um die Dateien nach der Photoshopkonvertierung in einer Internetseite verwenden zu können, benötige ich den Dateinamen mit der entsprechenden Endung (in diesem Falle JPG).

      Schöne Grüße,
      Worrel