Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_replace - dziwnie się zachowuje
Forum PHP.pl > Forum > PHP
mario
Witam!!!

Dlaczego to wykonuje sie poprawnie:

Kod
$link = 'START <a href=index.php?id=87>tekst</a> KONIEC';<BR>$preg = preg_replace("#\index\.php\?id=([0-9]+)#si", "extra/\\1.html", $link);<BR>echo $preg;

natomiast kiedy zmienie zamiast index.php na np. tresc.php juz nie dziala?

Kod
$link = 'START <a href=tresc.php?id=87>tekst</a> KONIEC';<BR>$preg = preg_replace("#\tresc\.php\?id=([0-9]+)#si", "extra/\\1.html", $link);<BR>echo $preg;
artega
Usuń backslash przed literą "t" w wyrażeniu regularnym.
MWL
raczej zrób tak:
  1. <?php
  2. $link = 'START <a href=tresc.php?id=87>tekst</a> KONIEC';<BR>$preg = preg_replace("#\tresc.php?id=([0-9]+)#si", "extra/1.html", $link);<BR>echo $preg;
  3. ?>
artega
@MWL, wprowadzasz tylko w bład podając rozwiązanie, którego nawet nie sprawdziłeś.
MWL
no tak, tylko ze jak by robił inaczej to musiał by usunąć też literkę kolejną ® - powrót karetki
mario
dzieki artega za pomoc!!! pisalem w pracy skrypcik i nie mialem chyba glowy ;(

sprawa zalatwiona pozytywnie
wrzasq
@MWL: nie wiem o czym mowisz, ale przestan wprowadzac w blad - twoje rozwiazanie jest kompletnie niepoprawne, usunales znaki ucieczki sprzed wszystkich znakow specjalnych wyrazenia (sprzed kropki, znaku zapytania) a zostawiles tam, gdzie go byc nie powinno (tak jak artego powiedzial - przed litera t - to powodowalo zamiane na tabulator).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.