Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyszukanie i zamiana ustalonych słów. preg_replace()
Forum PHP.pl > Forum > PHP
UserCF
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
rad11
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
UserCF
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
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.