phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?Q?Re:_[php]_Re:_[php]_Re:_[php]_String_ersetzten_/_=E4ndern?=

[php] Re: [php] Re: [php] Re: [php] String ersetzten / ändern

Thomas Beckmann php_(at)_phpcenter.de
Mon, 10 Sep 2001 08:07:31 +0200


>>>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