Schnelle Suche...

  • Themenstarter Themenstarter antihero
  • Beginndatum Beginndatum
A

antihero

Hallo,

Ich arbeite an einem ganz einfachen (!) cms und habe folgende Datei, in welcher Inhalt mittels Platzhalter platziert wird.
PHP:
<html>
<head><title>{text:1}</title>
</head>
<body>
{text:2}
</body>
</html>

Ich möchte jtzt für eine Übersichtsdatei alle Platzhalter aus dem Quelltext herauslesen. Gibt es eine schnellere Möglichkeit als:

PHP:
$content = chop(stripslashes(implode("",file($src)))); //obige Datei einlesen

$counter = 1;
while($counter < 100) {
   if(ereg("\{text:$counter\}",$content)) {
      echo "text 1";
      }
   }

Ich habe mich gefragt ob man das, evtl. mit Regulären Ausdrücken schneller/eleganter lösen könnte?
Vielen Dank für Vorschläge!

antihero
 
Hm, wie meinst du das mit dem "herauslesen"? Willst du wissen welche Platzhalter in der Datei vorkommen? Oder die Platzhalter aus der Datei entfernen? Oder jeden Platzhalter durch etwas bestimmtes ersetzen? Das kommt aus deinem Quelltext irgendwie nicht so klar hervor, wäre aber zur Lösungsfindung gut zu wissen :)
 
Ich dachte eigentlich das sagt alles: ;)

antihero schrieb:
Ich möchte jtzt für eine Übersichtsdatei alle Platzhalter aus dem Quelltext herauslesen.

Aber na gut, selber weiss man ja immer wie mans gemeint hat. ;) Ich möchte einfach alle Platzhalter auslesen und ausgeben... Sprich das Resultat der zuoberst aufgeführten Datei wäre:

{text:1}
{text:2}

Das ist schon alles. Ich habe letztendlich statt ereg() die stristr() Funktion benutzt, wäre aber trotzdem noch an der "schnellstmöglichen" Lösung interessiert.

Reicht das? ;)

antihero
 
Mein Problem wurde leider wieder aktuell...
Ich muss dass ganze trotzdem mit RegEx's machen...Hier die Suchmaske, die funktioniert auch.
PHP:
$searchterm = "=(getDatImg\\()(\\d*)(,)(\\d*)(,)(\\d*)(,)(\\d*)(\\);)=isU";

Nur möchte ich nach der Suche nicht den ganzen Quelltext mit den ersetzten Platzhaltern ausgeben, sondern nur die ersetzten Platzhalter.

Wenn ich aber mit preg_replace() die gefunden getDatImg's ersetze, kommt (logischerweise) trotzdem der ganze restliche Quelltext der von der Suchmaske nicht betroffen ist, auch ins Ergebnis... Weiss jemand wie man das umgehen kann?
Also lediglich eine Liste mit den gefundenen getDatImg Funktionen im Text.
Vielen Dank für eure Hilfe.

antihero
 
Zuletzt bearbeitet von einem Moderator:
Das wird sicher nicht mein Vorzeigethread... ;)
Weil 1. fand ich nach einigem Suchen im php.net Manual eben diesen Befehl...
2. Hab ich schon wieder vergessen die lösung hin zu posten, damit ihr euch nicht "den Kopf zerbrecht" wegen Fragen welche eigentlich schon gelöst sind...
Sorry. Hier die Lösung wie ich Sie benutze:
PHP:
$searchterm = "=(getDatImg\\()(\\d*)(,)(\\d*)(,)(\\d*)(,)(\\d*)(\\);)=";
preg_match_all($searchterm,$content,$matches);
$replaceterm = "<a href='javascript:editIWindow(\\\\4,\\\\2,\\\\6,\\\\8);'>Bild \\\\2</a><br>";
foreach($matches[0] as $value) {
	echo preg_replace($searchterm,$replaceterm,$value)."<br>\n";
	}

Das funktioniert so wie ich will und liefert eine Liste der gefundenen Platzhalter in meinem Quellcode...

antihero
 
Zurück