ubuntuusers.de

[gelöst!] [PHP/Regex] kleines Problemchen...

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

aZe

Anmeldungsdatum:
13. Februar 2005

Beiträge: 635

Hab ein kleines Problemchen mit nem Regex:

Ich will

$var = "./bla/blubb/name.jpg" (oder .gif, .png)

in diese teile splitten:

$var1 = "./bla/blubb/"
$var2 = "name.jpg"
$var3 = "name"

nur kommt das dabei raus:

$var1 = ... da hab ich ein Problem mit dem / zeichen, wenn ich es so irgendwie in der art mache: [A-Za-z0-9]*)
$var2 = ereg("([A-Za-z0-9]*)(.jpg|.png|.gif)$", $var); –> 1
$var3 = ereg_replace("(.jpg|.png|.gif)$", "", $var2); –> 1

weiß da jemand weiter? ach und wie kann ich eigentlich nen string ausschließen, sodass der ignoriert wird?

mawe

Anmeldungsdatum:
18. November 2004

Beiträge: 172

Hi!

Ich hab keine Ahnung von PHP (und auch nicht wie die Regex dort funktionieren 😉), aber bei Python scheint das zu passen

(.*/)(.+?)(\.(?:jpg|gif))


In der ersten Klammer matcht der Pfad, in der zweiten der Dateiname, und in der dritten die Endung (also .jpg oder .gif). Wie man das jetzt in PHP umsetzt überlass ich Dir 😉

Gruß, mawe

aZe

(Themenstarter)

Anmeldungsdatum:
13. Februar 2005

Beiträge: 635

Vielen Dank! Dein Beitrag hat mich auf die richtige Idee gebracht!

...
		$this->image_path = $image;
		$this->image_path = ereg_replace("[A-Za-z0-9]*\.[gif|jpg|png]+$", "", $this->image_path);
		
		$this->image_name_extension = $image;
		$this->image_name_extension = ereg_replace("^\.(/[A-Za-z0-9]*)*/", "", $this->image_name_extension);
		
		$this->image_name = $this->image_name_extension;
		$this->image_name = ereg_replace("\.[gif|jpg|png]+$", "", $this->image_name);
		
		echo "im path: ".$this->image_path;
		echo "<br>im ext: ".$this->image_name_extension;
		echo "<br>im name: ".$this->image_name;
...

ergibt:

im path: ./bla/blubb/
im ext: test.jpg
im name: test

funktioniert!

Antworten |