Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]str_replace() nie chce działać w preg_replace()
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował Joachim Peters 20.01.2008, 11:49:45
Go to the top of the page
+Quote Post
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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
Go to the top of the page
+Quote Post
sobstel
post
Post #4





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


w str_replace nie używa się wyrażeń regularnych, do tego służy preg_replace

Ten post edytował sopel 20.01.2008, 11:46:25
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #5





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Grzyw
post
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #7





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
Grzyw
post
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Grzyw 20.01.2008, 13:19:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:41