preg_match Text INNERHALB zweier Marken auslesen
DannyLupo
- php
Hallo!
Habe eine kleine Frage:
Mittels preg_match will ich aus dem String
"aaaa[url]www.test.de[/url]bbbbb"
www.test.de auslesen.
Bisher habe ich es aber nur geschafft den String samt Brackets -
also mit [url] und [/url] auszulesen und zwar so:
preg_match("/[url].*[/url]/",
"aaaa[url]www.test.de[/url]bbbbb", $treffer);
$host = $treffer[0];
echo $host;
Wie lese ich jetzt also "www.test.de" statt "[url]www.test.de[/url]" in meine Variable?
Vielen Dank im Voraus,
Danny.
gudn tach Danny!
preg_match("/[url].*[/url]/",
"aaaa[url]www.test.de[/url]bbbbb", $treffer);
$host = $treffer[0];
echo $host;Wie lese ich jetzt also "www.test.de" statt "[url]www.test.de[/url]" in meine Variable?
preg_match("/\[url](.*)\[\/url\]/",
"aaaa[url]www.test.de[/url]bbbbb", $treffer);
$host = $treffer[1];
echo $host;
steht im manual: http://php.net/preg_match
beachte aber, dass du damit zuviel matchst, wenn mehr als ein url vorkommt.
@all: diese fragen werden doch staendig gestellt, gibt's dazu einen thread, der sich intensiv und hilfreich damit beschaeftigt, auf den man bei solchen fragen einfach drauf verweisen kann?
prost
seth
gudn tach!
diese fragen werden doch staendig gestellt, gibt's dazu einen thread, der sich intensiv und hilfreich damit beschaeftigt, auf den man bei solchen fragen einfach drauf verweisen kann?
ach stimmt, da war ja was...:
http://www.christian-seiler.de/projekte/php/bbcode/
prost
seth
preg_match("/[url](.*)[/url]/",
"aaaa[url]www.test.de[/url]bbbbb", $treffer);
$host = $treffer[1];
echo $host;
>
> beachte aber, dass du damit zuviel matchst, wenn mehr als ein url vorkommt.
>
Hat mir soweit geholfen.
Aber was mache ich denn, wenn eben 2 URLs vorkommen?
Danke im Voraus,
Danny.
Tach.
Aber was mache ich denn, wenn eben 2 URLs vorkommen?
Die Gefräßigkeit mit dem Modifikator U (PCRE_UNGREEDY) zügeln.
Aber was mache ich denn, wenn eben 2 URLs vorkommen?
Die Gefräßigkeit mit dem Modifikator U (PCRE_UNGREEDY) zügeln.
Wie sähe das in meinem Fall denn aus?:
preg_match("/[url](.*)[/url]/",
"aaaa[url]www.test1.de[/url]bbbbb[url]www.test2.de[/url]ccc", $treffer);
$host = $treffer[1];
echo $host;
Wie bekomme ich denn die beiden Links dann heraus?
(www.test1.de und www.test2.de)
Für eine letzte Antwort schonmal Danke im Voraus,
Gruß, Danny.
Tach.
Die Gefräßigkeit mit dem Modifikator U (PCRE_UNGREEDY) zügeln.
Wie sähe das in meinem Fall denn aus?:
Warum liest du dir nicht den entsprechenden Abschnitt (sogar mit Beispielen) in der bereits verlinkten Referenz durch?
Entweder fügst du den Modifikator direkt nach dem abschließenden Begrenzungszeichen ein…
/…/U
… oder schaltest die Gefräßigkeit…
/…(.*?)…/
… gezielt im Suchmuster mit einem Fragezeichen nach dem Quantifier um.
Wie bekomme ich denn die beiden Links dann heraus?
Du könntest z.B. preg_match_all verwenden.