PHP Bestimmte Bereiche aus String entfernen?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich habe einen String, der beispielsweise folgendermaßen ausschaut:
04.04.2017 Liste: <a href="done.php?datum=2017-02-01">sonst. Land</a> (XY)

Jetzt möchte ich alles zwischen < und > (inkl. dieser Zeichen) entfernen, sodass ich folgenden String erhalte:

04.04.2017 Liste: sonst. Testland (XY)

Wie kann ich sowas realisieren? Der String hat nicht immer den gleichen Aufbau.

VG, David
 
zoz hat recht! Diese Stringfrickelei wird dir irgendwann auf die Füße fallen. DOM benutzen!

greetz
hroessler
 
Wenn es - wie im Eingangspost beschrieben - tatsächlich nur darum geht, HTML-Tags aus Strings zu entfernen, dann ist ein DOM-Parser wie die sprichwörtliche Kanone, mit der auf den Spatz geschossen wird. Ich würde auf jeden Fall erst mal Nixdorfs Rat umsetzen und strip_tags() benutzen. Falls das wider Erwarten nicht funktioniert, dann können wir über härtere Bandagen reden.
 
kommt drauf an, was genau du machen willst.
wenns tatsächlich "nur" das ist, was du da beschreibst, mit regex arbeiten:
Code:
$string = preg_replace('/<.*?>/','',$string);
funzt in dieser form aber nur, wenn "<" & ">" nicht in dem Text auftauchen, den du behalten möchtest
 
rumbalotte schrieb:
kommt drauf an, was genau du machen willst.
wenns tatsächlich "nur" das ist, was du da beschreibst, mit regex arbeiten:
Code:
$string = preg_replace('/<.*?>/','',$string);
funzt in dieser form aber nur, wenn "<" & ">" nicht in dem Text auftauchen, den du behalten möchtest

naja, das waere dann invalides html. &gt; und &lt; sind die entities, die > und < in sgml-derivaten kodieren.

besser (okay, mglw. nur effizienter) waere fuer das pattern m.e. nach auch

Code:
$str = preg_replace_all('/<[^>]*>/sim', '', $str);
 
Zurück
Oben