String nach bestimmten Zeichen durchsuchen
Michael
- php
0 Sven Rautenberg0 Michael
0 Vinzenz Mai0 suit
Hallo,
ich habe viel gesucht, aber nirgends ein passendes Beispiel gefunden. Ich verwende Wordpress und möchte in einer kleinen Funktionen aus dem Text eines Posts die ID einer verwendeteten Galerie auslesen.
Bsp (Es ist nicht aussagekräftig, aber es reicht.):
$text = "Heute ist der 25.12.2009. [nggaller id="1"] und das ist toll."
Im ersten Stepp möchte ich alle zeichen um [nggallery id="1"] auslesen und löschen und später über preg_replace("=([^0-9]+)=s", "", $text) die ID auslesen.
Kann mir hier jemand bei dem Zwischenschritt behilflich sein?
Danke. Gruß
Michael
Moin!
Im ersten Stepp möchte ich alle zeichen um [nggallery id="1"] auslesen und löschen und später über preg_replace("=([^0-9]+)=s", "", $text) die ID auslesen.
Kann mir hier jemand bei dem Zwischenschritt behilflich sein?
preg_replace kennst du doch schon - wo ist jetzt das Problem?
- Sven Rautenberg
preg_replace kennst du doch schon - wo ist jetzt das Problem?
- Sven Rautenberg
Ich weiß nicht wie ich den $pattern formulieren muss, um alle Zeichen vor der [ und nach der ] löschen kann.
Michael
Hallo,
» preg_replace kennst du doch schon - wo ist jetzt das Problem?
»
» - Sven RautenbergIch weiß nicht wie ich den $pattern formulieren muss, um alle Zeichen vor der [ und nach der ] löschen kann.
warum willst Du diese löschen, wenn Du - wie ich aus Deinem Beitrag herauslese - Du nur an der ID interessiert bist?
Freundliche Grüße
Vinzenz
Hallo,
Ich [...] möchte in einer kleinen Funktionen aus dem Text eines Posts die ID einer verwendeteten Galerie auslesen.
Bsp
$text = "Heute ist der 25.12.2009. [nggaller id="1"] und das ist toll."
Im ersten Stepp möchte ich alle zeichen um [nggallery id="1"] auslesen und löschen und später über preg_replace("=([^0-9]+)=s", "", $text) die ID auslesen.
ich verstehe Dich sicher völlig falsch. Ich habe eher den Eindruck, Du möchtest in Deinem Text den Bereich
[nggallery="<ziffern, die eine ID angeben>"]
finden und dann auf den Inhalt zwischen den Anführungszeichen zugreifen.
Du kannst dies
a) ganz konventionell über Stringfunktionen erledigen:
Finde die Position von [nggallery id=" im String mit strpos()
Finde die Position des nächsten " nach dieser Fundstelle mit strpos() und substr().
Schneide den Teilstring mit substr() aus.
b) Nutze einen RegExp.
Du suchst in Deinem String die Zeichenfolge
[nggallery id="
gefolgt von einer beliebigen Anzahl von Ziffern (mindestens einer), die Du Dir merken möchtest.
gefolgt von einem Anführunszeichen,
gefolgt von einer beliebigen Zeichenfolge.
Du möchtest auf das zugreifen, was Du Dir gemerkt hast (eine Backreference).
Das geht mit preg_match
a) ist einfacher
b) ist cooler
Performance sollte irrelevant sein. Ich würde mich nicht wundern, wenn a) schneller wäre.
Freundliche Grüße
Vinzenz
a) ist einfacher
b) ist cooler
Hallo suit,
» a) ist einfacher
» b) ist cooler
Zitat #1418
:D
Vinzenz, der genau dieses Zitat im Hinterkopf hatte ...