[PHP] Stringabschnitt gewinnen

timo_hildebrand

VFB Fan oO
ID: 107555
L
21 April 2006
1.072
92
Hi,
ich möchte einen STring "beschneiden" und zwar hätte ich gerne einen bestimmten Abschnitt in einer Variable.
Vorhanden sind:
String
Anfangstag
Der Text der gewonnen werden soll
Endtag

also bsp:
PHP:
$string="lala<start>abcdef</start>

In meiner Variable sollte jetzt stehen:"abcdef", also was zwischen anfangs und endtag steht.
Gibts es dafür eine Funktion in php?
 
Jipp, nennt sich preg_match() und sollte mit folgendem RegExp gefüttert werden:
Code:
~<start>(.*?)</start>~
Sieht dann so aus:
PHP:
if (preg_match('~<start>(.*?)</start>~', $string, $matches)) {
  echo $matches[1];
}
 
tleilax schrieb:
Jipp, nennt sich preg_match() und sollte mit folgendem RegExp gefüttert werden:
Code:
~<start>(.*?)</start>~
Sieht dann so aus:
PHP:
if (preg_match('~<start>(.*?)</start>~', $string, $matches)) {
  echo $matches[1];
}
Würde nicht auch (.*) reichen? Wofür steht das ? Eigentlich? (habs vergessen :ugly: )
 
Wenn man ausschliessen kann, dass die Tagsequenz mehrfach in dem String vorkommt, reicht (.*) vollkommen aus. Das Fragezeichen macht das Grouping an der Stelle ungierig, wodurch so wenig passende Zeichen wie möglich genommen werden. Ohne das Fragezeichen würde alles vom ersten öffnenden Tag bis zum letzten (und eben nicht dem nächsten) schliessenden Tag gruppiert werden.