Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyszukanie i zamiana ustalonych słów. preg_replace()
UserCF
post 23.05.2017, 23:51:41
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.05.2017

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


Witam panowie wink.gif

Krótko i treściwie

Mam prosty kod(Podmienia wszystkie wyrazy "quick" na "slow":
  1. $string = 'The quick quick quick brown fox jumps over the lazy dog.';
  2. $patterns = '/quick/';
  3. $replacements = 'slow';
  4. echo preg_replace($patterns, $replacements, $string);
  5. echo '</br>'.$string;


Wszystko działa, głowie się tylko na jedną rzeczą, otóż potrzebuje aby każdy element quick była zamieniany za każdym razem na inny wyraz.

Przykład:

tekst:
The quick brown quick fox jumps over quick the lazy dog.

zamieniany jest na np.:
The slow 1 brown slow 2 fox jumps over slow 3 the lazy dog.

Czy jest możlwość zrobienia tego tą metodą?
Czytałem coś o parametrach limitu ale on raczej zatrzymuje się na jakimś słowie np. 5 i dalej nie zamienia (jak się nie myle).

Może właśnie tą możliwość limitu można jakoś wykorzystać, do uzyskania efektu o który mi chodzi. smile.gif

Ten post edytował UserCF 23.05.2017, 23:54:13
Go to the top of the page
+Quote Post
rad11
post 24.05.2017, 07:48:03
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Może coś takiego:

  1. $string = 'The quick quick quick brown fox jumps over the lazy dog.';
  2. $patterns = '/quick/';
  3. $replacements = 'slow';
  4. $i = 1;
  5. echo preg_replace_callback($patterns, function($matches) use($replacements, &$i){
  6. return $matches[0] = $replacements . $i++;
  7. }, $string);


http://sandbox.onlinephpfunctions.com/code...7e380688dc93523
Go to the top of the page
+Quote Post
UserCF
post 24.05.2017, 23:33:21
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.05.2017

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


Cytat(rad11 @ 24.05.2017, 08:48:03 ) *
Może coś takiego:

  1. $string = 'The quick quick quick brown fox jumps over the lazy dog.';
  2. $patterns = '/quick/';
  3. $replacements = 'slow';
  4. $i = 1;
  5. echo preg_replace_callback($patterns, function($matches) use($replacements, &$i){
  6. return $matches[0] = $replacements . $i++;
  7. }, $string);


http://sandbox.onlinephpfunctions.com/code...7e380688dc93523


No i wszystko, działa. Super że zdecydowałeś się mi pomóc, dziękuję ci bardzo smile.gif
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: 23.04.2024 - 10:39