PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP und Regulärer Ausdruck



clumsy
26-06-2006, 18:06
Servus,

ich hab in PHP ne Variable $string, in der ein Pfad drin steht (zB. /BLUBS/A/vc/admin/cifcmgxml.cfg ). Nun will ich nur den Dateinamen der cfg-Datei, also cifcmgxml.cfg.
In einer Shell geht das mit:


echo /BLUBS/A/vc/admin/cifcmgxml.cfg | sed "s/.*\/\(.*cfg\)/\1/"


Wie funktioniert das in PHP? Hab preg_match und preg_replace versucht, aber nicht hinbekommen.
Wäre für Hilfe sehr dankbar!

clumsy

Romanday
26-06-2006, 19:47
Wie funktioniert das in PHP? Hab preg_match und preg_replace versucht, aber nicht hinbekommen.
Wäre für Hilfe sehr dankbar!

clumsy

Geht auch ohne REGEX (wenn das einfacher für dich ist).

Suche mit strrpos() nach dem letzten auftreten von / und zerteile
dann den String.

nEox
26-06-2006, 20:03
Es geht auch noch einfacher:

http://de2.php.net/basename

Grüße,
nEox

Romanday
26-06-2006, 21:33
Es geht auch noch einfacher:

http://de2.php.net/basename

Grüße,
nEox

Jau,
Gibt es übrigens auch auf der Shell.:D

clumsy
27-06-2006, 10:46
danke, habs mit basename gemacht. in der shell kenn ich das natürlich, wusste aber nicht, dass es das auch bei php gibt :)

Danke für die Hilfe!

MasterOfPuppets
05-07-2006, 21:04
Ich glaube bei deinem Ausdruck wäre auch einfach das erste s fehl am Platz. Diese kurzen Dinger (jetzt weiß ich nicht mehr wie sie heißen) kommen immer nach dem abschließenden /.

Romanday
05-07-2006, 23:46
Ich glaube bei deinem Ausdruck wäre auch einfach das erste s fehl am Platz. Diese kurzen Dinger (jetzt weiß ich nicht mehr wie sie heißen) kommen immer nach dem abschließenden /.

Richtig, aber bei Sed ist in diesem Fall s kein kurzes Ding.:D