Suchmuster (reguläre ausdrücke)

Nucleus

Erfahrenes Mitglied
Hi,

ich will in einer Zeichenkette 2 Begriffe suchen. <!--BEGIN--> <!--END-->

Ich habe es mit regulären ausdrücken versucht nur funktioniert das bei mir nicht, weiß jemand woran das liegt ?

Hier mal mein Code:
Code:
preg_match("/\<!--BEGIN\-->(.+)\<!--\/END\-->/isU",$post);
 
Willst du die Positionen von <!--BEGIN--> und <!--END--> herausfinden, oder das, was dazwischen ist?

Postitionen;
-> strpos

Das dazwischen:
Versuchs mal so:
Code:
preg_match("/\<--BEGIN--\>(.*)\<!--END--\>/isU", $sDeinText);

Falls das nicht geht, kannst du ja mal versuchen, das Ausrufezeichen ! zu escapen.
 
@Fabian Hoffmann
("/\<--BEGIN--\>(.*)\<!--END--\>/isU",

geht auch nicht


Also eigentlich lese ich eine HTML datei ein und will bestimmte Teile herausscheiden - und dann auslesen dazu würde ich dann eval verwenden.


PHP:
function cut($post)
{
$x = 0;
  while(preg_match("/\<--BEGIN--\>(.*)\<!--END--\>/isU",$post))
  {
    $codeAnfang = strpos($post,"<!--BEGIN-->");
    $codeEnde = strpos($post,"<!--END-->");
    $cut[$x] = substr($post,$codeAnfang,$codeEnde-($codeAnfang)+6);
    $x++;
    echo"XXXXXXXXX $x";
  echo $cut[$x];
  }
  return $cut;
}
 
Zuletzt bearbeitet:
Code:
"/<--BEGIN-->(.*)<!--END-->/isU",
Die spitzen Klammern müssen nicht markiert werden.


Ich bin mir aber nicht sicher, ob das mit der Schleife Überhupt so läuft... ist eigentlich auch nicht nötig, da es mit preg_match_all() ja das geeignete Mittel dafür gibt:
PHP:
<?php
function cut($post)
{
  preg_match_all("/<--BEGIN-->(.*)<!--END-->/isU",$post,$cut);
  if(isset($cut[1]))
   {
     foreach($cut[1] as $key=>$value)
      {
      echo"<br> $key $value";
     }
    return $cut[1];
   }
   return '';
}
?>
 
Zuletzt bearbeitet:
für eure antworten
habs mal so gelöst wenn ich auf einen fehler komm meld ich mich wieder :)


PHP:
function cut($post)
{
  preg_match_all("/<!--BEGIN-->(.*)<!--END-->/isU",$post,$ma);
  for ($i = 0; $i < count($ma[0]); $i++)
  { 
    $cut[$i] = $ma[0][$i];
  }
return $cut;
}


einmal
 
Zurück