phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?B?UmU6IFtwaHBdIFN0cmluZyBlcnNldHp0ZW4gLyDkbmRlcm4=?=

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

Marc-Alexander Prowe php_(at)_phpcenter.de
Mon, 10 Sep 2001 01:40:57 +0200


Guten Tag Jansen,

Am Sonntag, 9. September 2001 um 23:34 schrieben Sie:

>>>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:
[...]
>  $zeileneu = preg_replace("href=(*).html", "href=index.php", $zeile);
[...]
> 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?

Du benutzt nun einen regulären Ausdruck, und reguläre Ausdrücke sind
eine Welt für sich... Das PHP-Manual hilft auch nur begrenzt weiter.
(Zeit zum Googlen?!)

IMHO müsste es lauten (ungetestet!):

 $zeileneu = preg_replace("/href=(\w+?)\.html/i",
 "href=\\1.php?page=\\1.html", $zeile);

Dann darf der Filename aber nur Zahlen, Buchstaben und den Unterstrich
enthalten.
Wenn Du, entgegen Deiner Angabe, doch Anführungsstriche benutzt, dann
musst Du die RegEx entspechend ändern.

-- 
Mit freundlichen Grüssen
Marc-Alexander Prowe                            mailto:listen_(at)_mohajer.de



php::bar PHP Wiki   -   Listenarchive