Hallo Harald.
ich hab ein upload-script und wollte mithilfe von substr() die Datei in Name und Endung zerlegen, aber wenn ich z.B. html habe, sind das nicht wie üblich 3, sondern 4 Zeichen => substr() funktuoniert nicht
Deshalb hatte ich mir gedacht das müsste doch auch mit regulären Ausdrücken gehen => stimmt das?
Sicher, aber warum nutzt du nicht pathinfo() dafür?
$str = preg_replace('=(.*).(.*)=', '\1I\2', $str);
Hier sollte der Dateiname bookmarks.html in bookmarksI.html umgewandelt werden.
Dieser Ausdruck:
( = Eine geöffnete Klammer
.* = Kein oder beliebig viele Zeichen
) = eine verwaiste Kapselungsklammer
. = Ein beliebiges Zeichen
(.*) = Kein oder beliebig viele Zeichen, gekapselt
Besser:
$str = preg_replace('=(.+)\.(.+)=', '$1I.$2', $str);
reguläre Ausdfrücke sind normalerweise eh "gefrässig", oder? => es wird immer der letzte Punkt genommen (z.B. hallo.bookmarks.html => hallo.bookmarksI.html und nicht halloI.bookmarks.html)
In einem solchen Fall musst du ihre Gier unterbinden.
Einen schönen Sonntag noch.
Gruß, Ashura
Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
30 Days to becoming an Opera8 Lover -- Keyboard Shortcuts
Meine Browser: Opera 8.50 | Firefox 1.0.7 | Lynx 2.8.5 | Konqueror 3.3.2 | Netscape 4.7 | IE 6.0
