TS: Dokumentname extrahieren

Beitrag lesen

Hello,


> <?php
>     header ('Content-Type:text/plain; charset:utf-8');
> 
> //$str='pfad/zur/datei/name.vorname.datum.extension';
> $str='pfad/zur/datei/name';
> var_dump ( basename( $str ) );
> var_dump  ( explode( '.', basename( $str ) ) );
> var_dump  ( array_slice( explode( '.', basename( $str ) ), 0, -1 ) );
> var_dump  ( implode( '.', array_slice( explode( '.', basename( $str ) ), 0, -1 ) ) );

ergibt:

string(4) "name"
array(1) {
  [0]=>
  string(4) "name"
}
array(0) {
}
string(0) ""

was falsch ist.
Der von mir bemängelten fehlenden Rücksichtnahme auf 0 bis n Punkte im Dateinamen (incl. Extension) wurde hier also auch keine Rechnung getragen.

Benutzt man die Funktion pathinfo(), hat man das Problem nicht:

array(3) {
  ["dirname"]=>
  string(14) "pfad/zur/datei"
  ["basename"]=>
  string(4) "name"
  ["filename"]=>
  string(4) "name"
}

Man muss nur anschließend mittles isset() auch prüfen, ob das erwünschte Arrayelement auch geliefert wurde. Das ist aber meistens nur interessant für scheme.

Außerdem stellen derartig geschachtelte Funktionsaufrufe, wie sie von Dir gezeigt wurden, meistens ein Sicherheitsrisiko dar, da keine Überprüfung der erwünschten Rückgabewerte stattfindet.

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.