Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]preg_replace nie zastępuje wszystkich wystąpień
maviozo
post 26.11.2013, 15:03:59
Post #1





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


Prosta funkcja, która ma zamienić zwykłe spacje przy pojedynczych literkach, np: " a ", " i " na " a ":
  1. '#( [awizo])( )#m',
  2. '\\1 ',$input);
No i prawie działa, ale niektóre zamienia, a inne nie. Dlaczego? Nie ustawiłem odpowiedniego przełącznika poza 'm'?

Nikt nic nie wie?
Go to the top of the page
+Quote Post
_Borys_
post 26.11.2013, 15:39:40
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. preg_replace('#(\b[awizo]) #','\\1 ',$input);


Ten post edytował _Borys_ 26.11.2013, 16:09:34
Go to the top of the page
+Quote Post
SmokAnalog
post 26.11.2013, 15:43:40
Post #3





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Flaga "m" nic u Ciebie nie da, bo nie używasz ani ^, ani $.

Ja bym zrobił tak:
  1. preg_replace('#(\s+)([awizo])\s+#', '\1\2 ', $input);
Go to the top of the page
+Quote Post
maviozo
post 4.12.2013, 22:10:05
Post #4





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


Niestety obie porady nie pomogły. O ile SmokaAnaloga niewiele zmienia, to _Borysa_ rozwala niemal stronę, wstawiając znaki również w sytuacji gdzie jest np.: <a href=.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:38