phpbar.de logo

Mailinglisten-Archive

[php] Probleme mit regulaerem Ausdruck

[php] Probleme mit regulaerem Ausdruck

Ralf Eggert php_(at)_phpcenter.de
Mon, 26 Nov 2001 00:18:50 +0100


Hi Liste,

ich komme irgendwie an zwei Problemen mit einem regulaeren Ausdrucke
nicht weiter. Vielleicht kann mir ja jemand einen kleinen Tipp oder
Denkanstoss geben.

Folgendes Skript:

  $loc_text .= "Hier steht ein externer Link ";
  $loc_text .= "<A HREF=\"http://www.externe-domain.de/\""
  $loc_text .= "TARGET=\"_blank\">zu einer anderen Seite</A>. ";
  $loc_text .= "Es gibt aber auch interne Links ";
  $loc_text .= "<A HREF=\"http://www.interne-domain.de/pfad/\">wie
  $loc_text .= "diese oder wie <A HREF=\"/pfad/datei.htm\""
  $loc_text .= "TARGET=\"_top\">wie diesen</A>. ";

  $loc_search = "|<a href=\"(.*)\"( target=\"(.*)\")?>.*</A>|Ui";
  preg_match_all ($loc_search, $loc_text, $loc_result);
	
  echo "<PRE>";
  var_dump($loc_result);
  echo "</PRE>";

Der regulaere Ausdruck solle alle vorhandenen Links im Text finden,
unabhaengig davon, ob ein TARGET gesetzt worden ist oder nicht. Die
komplette Fundstelle sowie die URL und das Target soll er ins Array
$loc_result packen. Es funktioniert auch eigentlich, nur gibt es noch
zwei Schoenheitsfehler.

1. Um das mal vorhandene und mal nicht vorhandene TARGET zu finden,
   habe ich die gesamte Passage nochmals in Klammern eingefasst: 

   ( target=\"(.*)\")?

   Dadurch erhalte ich in $loc_result aber auch diese Passagen, die ich
   nicht brauche. Mir reicht schliesslich nur das Target selber Kann 
   ich das irgendwie verbessern?

2. In meinem Beispiel ist fuer den zweiten Link kein Target angegeben.
   Gibt es eine Moeglichkeit, dass er in dem Ergebnisarray dafuer
   trotzdem eine Art Platzhalten anlegt, damit die einzelnen Elemente 
   des Arrays gleichmaessig durchnummeriert sind?

Ich hoffe, mir kann jemand einen kleinen Denkanstoss in die richtige
Richtung geben. 

Danke und Gruss,

        Ralf

-- 
__________________________________________
 In-Greece.de - die Griechenlandcommunity
_______ http://www.in-greece.de/ _________


php::bar PHP Wiki   -   Listenarchive