phpbar.de logo

Mailinglisten-Archive

[php] Wildcard =?iso-8859-1?Q?f=FCr?= eregi_replace (Mehrere Ergebnisse)

[php] Wildcard =?iso-8859-1?Q?f=FCr?= eregi_replace (Mehrere Ergebnisse)

Laura Reising laura.reising_(at)_onlinehome.de
Thu, 16 Mar 2000 09:40:46 +0100


Hallo Mark,


> angenommen ich habe das hier:
> <wichtig>Hier steht das, was ich haben will</wichtig>
> <anfang>Hier steht Text</ende>
> <wichtig>Hier steht das, was ich haben will</wichtig>
> <anfang>Hier steht nochmal Text</ende>
> <wichtig>Hier steht das, was ich haben will</wichtig>
> <anfang>Hier steht nochmehr Text</ende>

Wenn Du dies alles in einen String haust, dürfte es schwer werden, da
eregi() (theoretisch) auf Grund der greedy-Eigenschaft alles vom ersten
'<anfang>' (Zeile 2) bis zum letzten '</ende>' (Zeile 6) schluckt
(eigentlich müsste eregi() bei Männern sehr geliebt sein - oder ;-) ? ).

> Wie kann ich PHP klar machen, daß ich aus obigem Text
> _nur_ jeweils die Zeile
> <wichtig>Hier steht das, was ich haben will</wichtig>
> rausziehen will?
>
> Ich habe mal so angefangen, dann wird aber nur immer
> die erste Zeile gelöscht:
> eregi("<anfang>(.*)</ende></dt>", $match, $ergebnis);
> $match=eregi_replace("$ergebnis[1]","",$match);
>
> $match ist mein Ergebnis von fread().
>
> Gibt es eine andere (bessere) Möglichkeit?

Ich würde das ganze zeilenweise einlesen (ungetestet):

while(! feof($deinFileHandle) {
  $eineZeile=fgets($deinFileHandle, 1024);
  if eregi("<wichtig>(.*)</wichtig>", $eineZeile, $wichtiges) {
    $wichtigeZeilen[]=$wichtiges[1];
  }
}

Ciao
Laura






php::bar PHP Wiki   -   Listenarchive