phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Links_=E4ndern?=

[php] Links ändern

Hans Jansen php_(at)_phpcenter.de
Tue, 11 Sep 2001 14:31:18 +0200


Hallo Liste,
zur Zeit arbeite ich an einem Script, welches eine Datei ausliest und alle
Links in dieser ändert.
Hier einmal mein bisheriges Script:

<?php
$datei = fopen("test.html", "r");
while (!feof($datei))
{
 $zeile = fgets($datei, 2500);
 $zeileneu = preg_replace('/href=(\w+?)\.html/i', 'href=\\1.htm',
$zeileneu);
 $zeileneu = preg_replace('/href=(\w+?)\.htm/i', 'href=index.php?page=\\1',
$zeileneu);
 $zeileneu = preg_replace('/href=(\w+?)\.php/i', 'href=index.php?page=\\1',
$zeileneu);
 echo "$zeileneu";
}
fclose($datei);
?>

Das Script öffnet die test.html und soll alle Links von z.B. <a
href="haha.html"> zu <a href="index.php?page=haha"> ändern.

Mein Problem ist jetzt, daß dieses Script nicht richtig funktioniert, d. h.
wenn z. B. der Link <a href=haha.html> (also ohne "") ist, dann funktioniert
es, wenn jedoch "" hinzugefügt werden, funktioniert es nicht.
Wenn der Link z. B. haha.php?test=abc&dd=abc ist, dann ist die Ausgabe
index.php?page=haha?test=abc&dd=abc. Hier wäre das zweite ? falsch gesetzt.
Außerdem: Was ist, wenn es ein e-mail-Link ist, also <a
href="mailto:test_(at)_test.de">?

Meine Frage jetzt an die Liste:
Wie müsste das Script aussehen, daß es richtig funktioniert?

Danke für Eure Hilfe,
Hans



php::bar PHP Wiki   -   Listenarchive