phpbar.de logo

Mailinglisten-Archive

[php] Frage zu regulären Ausdrücken

[php] Frage zu regulären Ausdrücken

Mathias Gloss mgloss at amadeus.net
Mon Jul 26 16:34:07 CEST 2004


Aloha,




> From: "Tim Hildebrandt" <TConnect at gmx.net>@phpbar.de  on 26.07.2004 
16:20 ZE2

> ich habe folgende Frage: In meinem HTML-Code habe ich Kommentarvariabeln
> verankert, die letztlich zu Hyperlinks umfinktioniert werden sollen. 
Dabei
> sollen die entstehenden Hyperlinks in zuvor zu definierende Kategorien
> routen, dessen Information selbst bereits in der Variabel verankert 
werden
> soll. Beispiel:

> 0 = kategorie 1
> 1 = kategorie 4
> 6 = kategorie 13

> wobei die Zahlen vorab die Datenbank-ID's der Kategorien sind.

> Die Variabeln sollen im HTML-Code nun so untergebracht werden:

> <!--category:0-->
< <!--category:1-->
> <!--category:6-->

> Und nun möchte ich irgendwie aus dem gesamten Quellcode exakt die 
einzelnen
> ID's zurückgewinnen. Ziel ist es, eine SQL Query zu generieren -> 
"SELECT *
> FROM tabelle WHERE id = 0 OR id = 1 OR id = 6" und aufgrund der in der
> Datenbank gespeicherten Zielorte (Dateinamen) die in Quellcode stehenden
> Variabeln auszutauschen durch die tatsächlichen Links:


> $link = "kategory13.htm"
> str_replace("<!--category:" . $row_id . "-->", $link, $quellcode);


> Was ich nun schon wieder seit Stunden suche ist eine einfache Lösung zu
> dieser Fragestellung, mit preg_match hab ich das aber nicht wirklich
> befriedigend hinbekommen.

Hm, eigentlich sollte das mit preg_match_all funktionieren ?!
$sWhere = "0 = 1";
preg_match_all("°<!--category:([0-9]+)-->°",$quellcode, $aMatches);
for ( $i = 0; $i < $aMatches[1]; $i++ ) {
  $sWhere .= ' OR id = '.$aMatches[1][$i];
}
$sql = "select  * from tabelle where $sWhere";
Sollte das gewünschte Ergebnis bringen.

Grüße, Mathias




php::bar PHP Wiki   -   Listenarchive