Mailinglisten-Archive |
>>>zur Zeit habe ich folgendes Problem: >>>Mit einem PHP-Script möchte ich alle <a href=...html> zu <a >>>href=index.php?page=...html> ändern. >> >> Nimm preg_replace anstatt und setze einen Ausdruck ein, der ungreedy >> von <a href=(.*)\.html> gegen <a href=index.php?page=\1.html> = ersetzt >> - ungetestet, den Rest findste im manual. > >Wenn ich dieses Script verwende: ><?php >$datei = fopen("test.html", "r"); >while (!feof($datei)) >{ > $zeile = fgets($datei, 2500); > $zeileneu = preg_replace("href=(*).html", "href=index.php", = $zeile); > echo "$zeileneu"; >} >fclose($datei); >?> > >bekomme ich immer diese Fehlermeldung: >Warning: Delimiter must not be alphanumeric or backslash in >/home/hcj/www/date.php on line 6 > >Was ist an dem Script falsch? Hans, ich hatte doch geschrieben, daß Du ins manual schauen mußt, und das wirst Du immer noch tun müssen, denn reguläre Ausdrücke erschließen sich nicht sofort beim Hinschauen.und wenn Du jedesmal die Liste befragen mußt, ist das nicht der Sinn der Sache. Der reguläre Ausdruck muß mit einem Begrenzer eingeschlossen sein, das sagt die obige Fehlermeldung, oft wird, was aber nicht zur Lesbarkeit beiträgt, der / verwendet, ich nehme ~ $zeileneu = preg_replace('~href=(.*)\.html~U', 'href=index.php?page=\1.html', $zeile); -- immer noch ungetest -- Thomas Beckmann, Kiel, Germany beckmann_(at)_gis.de
php::bar PHP Wiki - Listenarchive