tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
947
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von aphaean
    aphaean aphaean ist offline Mitglied Silber
    Registriert seit
    Mar 2004
    Ort
    aachen [nrw]
    Beiträge
    53
    Ich komme mir gerade ziemlich blöd vor - also lacht bitte nicht allzu laut .

    Ich würde gerne von einem Dateinamen die endung abhacken - nur fällt mir dazu keine elegante Lösung ein. Gibt es eine Funktion, damit ich zB alles vor dem Punkt auslesen kann? Oder muss ich etwa den ganzen string umkehren, die ersten 4 chars abhacken und dann das Teil wieder umdrehen?

    *verzweifeltguck*

    anna

    //EDIT:

    öhm Danke für die Resonanz .... das Problem hat sich über explode lösen lassen (toll sowatt - warum sagt mir das keiner früher?)

    cheerio,
    anna
     
    History will be kind to me, for I intend to write it
    Winston Churchill

  2. #2
    Avatar von Kahmoon
    Kahmoon Kahmoon ist offline Mitglied Platin
    Registriert seit
    Dec 2003
    Ort
    München
    Beiträge
    527
    vor einem ähnlichen Problem stand ich auch schon mal. Man kann Strings schon bei gewissen Zeichen trennen und zwar mit explode.

    z.B.
    PHP-Code:
    $dateiname explode(".jpg"$deinstring);
    print 
    $dateiname[0]; 
    Funktioniert so quasi einwandfrei. Aber ich denke direkt mit regulären Ausdrücken zu arbeiten wäre besser.


    Edit:
    Argh ich hätte bis Ende lesen sollen...dann hätte ich die Antwort hier nicht schreiben müssen
     

  3. #3
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Oder man benutzt gleich die richitge Funktion:
    PHP-Code:
    echo basename("bla.blub.foo.bar.jpg"".jpg"
    Nachteil könnte aber sein dass die Datei z.b. die Endung .jpeg haben könnte.

    Flexibler währe man hiermit:
    PHP-Code:
    <?php
    $file 
    "bla.blub.foo.bar.jpg";
    $array explode("."$file);
    for(
    $i 0$i <= count($array)-2$i++) {
        
    $filename[] = $array[$i];
    }
    echo 
    implode("."$filename);
    ?>
    So spielt die Dateiendung keine Rolle.
    Auch im Dateinamen möglicherweise enthaltene Punkte spielen keine Rolle.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Um die Dateiendung herauszufiltern ohne den genauen String kennen zu muessen kann man recht einfach mit explode() und implode() arbeiten, vorausgesetzt es wird keine doppelte Endung (z.B. .tar.gz) genutzt. Aber das kommt ja bei den meisten Usern eher weniger vor, dass man mit solchen Endungen konfrontiert wird.
    Hier nun mal der Code:
    PHP-Code:
    $datei='meine.kleine.bilddatei.jpg';
    $filename=explode('.',$datei);
    unset(
    $filename[count($filename)-1]);
    $filename=implode('.',$filename);
    echo 
    $filename
    Ausgabe:
    meine.kleine.bilddatei
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  5. #5
    versuch13 versuch13 ist offline Mitglied Brilliant
    Registriert seit
    Feb 2005
    Beiträge
    950
    Ich habe mir dazu mal eine Funktion geschrieben:

    PHP-Code:
    function get_filename($filename){
        
    $fn substr($filename0strrpos($filename'.'));
        return 
    $fn;

    echo 
    get_filename('test.dateiname.test.jpg');
    # ergibt: test.dateiname.test 
     

Ähnliche Themen

  1. Dyn. String kürzen - aber wie?
    Von Dustin84 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 09.08.10, 13:56
  2. Regulärer Ausdruck: String-Endung negieren
    Von Sturmrider im Forum PHP
    Antworten: 9
    Letzter Beitrag: 31.05.10, 09:49
  3. Antworten: 1
    Letzter Beitrag: 27.11.03, 23:03
  4. Antworten: 4
    Letzter Beitrag: 02.08.03, 12:57
  5. Datei endung auslesen!
    Von Bushman im Forum PHP
    Antworten: 8
    Letzter Beitrag: 05.11.01, 18:39