Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]str_replace() nie chce działać w preg_replace()
Forum PHP.pl > Forum > Przedszkole
Joachim Peters
Witam,

Możecie mi powiedzieć co jest nie tak z tym wzorcem, że nie chce w ogóle działa w nim funkcja str_replace()?
  1. <?php
  2. $pattern = '/[[(w+)]]/';
  3. $replacement = str_replace('_', ' ', '1');
  4. ?>


Pozdrawiam
Grzyw
Hmm.. nie wiem, może nie znam czegoś z manuala, ale co chcesz osiągnąć? Bo taka składnia str_replace() raczej niż nie zrobi..
Cysiaczek
Zobacz tą funkcję str_replace" title="Zobacz w manualu PHP" target="_manual i sprawdz, czy podajesz argumenty w dobrej kolejności, bo mi się wydaje, że nie.
Druga sprawa, to co ma regexp to tej funkcji?

Pozdrawiam

Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
sobstel
w str_replace nie używa się wyrażeń regularnych, do tego służy preg_replace
Joachim Peters
Cytat
Zobacz tą funkcję str_replace i sprawdz, czy podajesz argumenty w dobrej kolejności, bo mi się wydaje, że nie.

Chce zamienić wszystkie "_" na spację - wydaję mi się, że argumenty są dobrze ułożone.
Grzyw
Zgooda, ale jako trzeci argument musisz podać zmienną, w której ma zmiany dokonać. str_replace() nie wychwyci Ci '\\1'.
Jedynie taki zapis:
  1. <?php
  2. $replacement = str_replace('_', ' ',$replacement);
  3. ?>
Joachim Peters
Dobra obszedłem to w ogóle inaczej. Powiedzcie mi jeszcze tylko, czy ten
  1. <?php
  2. $pattern = '/[[(.*?)]]/';
  3. ?>
wzorzec jest lepszy od poprzedniego i czy da się jeszcze go poprawić?
Grzyw
Lepszy jest siłą rzeczy, bo w patternie:
  1. <?php
  2. $pattern = '/[[(w+)]]/';
  3. ?>


brakowało znaku backslash przed w i przed [:
  1. <?php
  2. $pattern = '/[[(w+)]]/';
  3. ?>


Poza tym wg mnie (zaznaczam, że w wyrażeniach regularnych jestem cieniutki) są identyczne.
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.