index.php
index.php?kat_id=21
/?kat_id=25
?kat_id=25
Zudem gibt es noch einige andere Variablen wie z.B. die Seitenzahl:
?kat_id=25&page=2
Oder die Druckversion:
?kat_id=25&show=printAus diesen Pfadangaben möchte ich den Dateinamen der neuen HTML-Datei zusammenbauen und folglich auch sämtliche Links auf der Seite automatisch ersetzen lassen.
Willst du wirklich _Dateien_ unter diesen Namen im System _speichern_ oder willst du URI-Pfade für publizierte Ressource-Adressen zusammenbauen?
Ziel:
index.html
21.html
25_2.html // mit Seitenzahl
25_print.html // DruckversionDer komplette HTML-Content liegt in einer Var namens $content vor.
Mein Ansatz (fürs erste):
$content=preg_replace("|?kat_id=(\d+)|","$1.html",$content);
Das heisst, deine Pfade haben keinerlei Delimiter.
Ich prophezeie dir übelsten Umgang mit dem Inhalt.
Da ich vermute, dass deine Pfade in einem bestimmten Kontext stehen:
Bsp. <a href="?kat_id=25&show=print">
solltest du diesen Kontext in dein Suchpattern einbeziehen.
Problem dabei ist:
- es sind nicht immer alle Parameter (show, page, kat_id) vorhanden.
- manchmal sind die Parameter leer (kat_id=&page=1)
Wie könnte ich das lösen?
Löse es bevor du ersetzen musst. Erzeuge gar nicht erst Pfade, die du eh nicht willst.
Die Lösung heisst eigentlich: Matche auf den Context, und überführe den Inhalt via callback Funktion an eine sub, welche sich der Details annimmt.
Du hast übrigens nicht gesagt, ob das eine einmalige Umbau-Aktion ist, oder ob du die CPU permanent verbraten willst.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische