RegExp
Klaus
- php
0 shn0 seth_not@home0 shn
Guten Tag,
wie bekomme ich es mit RegExp hin, dass beide Texte mit preg_match_all erkannt werden...
<title><![CDATA[
Hier steht ein Text
]]></title>
<title>
Hier steht ein Text
</title>
Wenn ich zB mit den Fragezeichen arbeite und beim oberen Beispiel <![CDATA[ mit ????????? erstetze, würde er mir beim 2ten Beispiel ja die ersten Buchstaben des Textes wegnehmen. Mit anderen Platzhaltern hatte ich auch kein Glück.
Ist aber bestimmt eine ganz simple Sache, für jemanden der sich damit auskennt :-)
Vielein Dank im Voraus
Servus,
Wie waers mit '%<title>(?:<![CDATA[)?(.*)(?:]]>)?</title>%' ?
Gruss
Patrick
gudn tach!
Wie waers mit '%<title>(?:<![CDATA[)?(.*)(?:]]>)?</title>%' ?
einige eckigen klammern sollten noch maskiert werden:
'%<title>(?:<![CDATA[)?(.*)(?:]]>)?</title>%'.
falls nur beide teile "<![CDATA[" und "]]>" oder keiner von beiden vorkommen duerfen/darf:
'%<title>(?:<![CDATA[([^<]*)]]>|([^<]*))</title>%'
oooder ganz ohne regexp:
suche "<title>" (mittels strpos)
suche "</title>"
s = string dazwischen (mittels substr)
if(anfang(s)=="<![CDATA[" && ende(s)=="]]")
schneide anfang und ende von s ab (mittels substr)
s ist der gesuchte text.
prost
seth
Servus,
einige eckigen klammern sollten noch maskiert werden:
Da hast du natürlich vollkommen recht. Hab ich in der Eile vergessen.
falls nur beide teile "<![CDATA[" und "]]>" oder keiner von beiden vorkommen duerfen/darf:
Hier ging ich davon aus, dass ein valides Dokument vorliegt ;)
oooder ganz ohne regexp:
Möglich, allerdings halte ich für so einen Fall einen Regulären Ausdruck für sinnvoller, da es durch die ganze "strpos-substr-erei", die hier nötig ist, ziemlich unübersichtlich und möglicherweise schwer nachvollziehbar wird.
Gruss
Patrick