Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace i własne, proste tagi
Forum PHP.pl > Forum > Przedszkole
dease
Witam.

Próbuję dokonać ów wyczynu:
Sprawdzamy czy wejście zawiera ciąg "_id_liczba" (bez "") jeżeli tak podmieniamy to na:
http://www.adres.pl/index.php?user_id=liczba

Niestety, kod który spłodziłem nie działa:
  1. $vars[0] = "http://www.adres.pl/index.php?id=";
  2. $content = preg_replace("/^_id_[0-9]\d*/",$vars[0].$1,$content);


być może, po prostu nie kapuję wyrażeń regularnych sadsmiley02.gif Liczę na sugestie - dziękuję.

Nikt nie ma pomysłu?
Fifi209
bez ^ i po [0-9] ma być +
dease
Niestety, co prawda string jest podmieniany ale nie mam pojęcia jak "wyciągnąć" liczbę po nim występującą.
  1. $vars = Array();
  2. $vars['url'] = "http://adres.pl/index.php?id=";
  3. $content = preg_replace("/_id_[1-9]+\d*/",$vars['url'],$content);


Co zrobić, w wypadku gdy oryginalny $content na wejściu zawiera np. "blabla _id_344 sdsd" i chcę go podmienić na wyjściu na "blabla http://adres.pl/index.php?id=344 sdsd". kod wyżej zmienia jedynie na http://adres.pl/index.php?id=

czekam na sugestie.
Fifi209
Jeżeli chcesz coś "wyciągnąć" to dajesz to w () np. ([0-9]+)
dease
A czy to wyciągnięte coś winksmiley.jpg jest dostępne w jakiejś zmiennej?

  1. $content = preg_replace("/_id_([0-9]+)\d*/",$vars['url'],$content);

^ rozumiem, że tak powinien wyglądać kod?
Fifi209
Że takie pytanie zadam: a zaglądałeś k... do dokumentacji?! To lenistwo nie zna granic.
dease
Cytat
Że takie pytanie zadam: a zaglądałeś k... do dokumentacji?!

Tak, nie jestem idiotą aby tracić czas na pisanie na forach, jeżeli jest gdzieś konkretny przykład. sciana.gif

EDIT: jedyne co mi cokolwiek mówi z dokumentacji to
Cytat
Added the '$n' form for the replacement parameter

Niestety nie ma konkretnego przykładu.
Blame
Cytat
Return Values

preg_replace() returns an array if the subject parameter is an array, or a string otherwise.

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged or NULL if an error occurred.

To zwraca funkcja preg_replace. I teraz zobacz sobie do jakiej zmiennej to przypisujesz -.-
dease
Teraz się domyśliłem, że głupotę napisałem i w dodatku źle wytłumaczyłem.
(chcialem z dopasowanego stringa _id_100 "wyciagac" jeszcze 100. a wystarczy podmiana _id_)
Dzieki!

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