Skocz do zawartości

[PHP] zamiana części wystąpień w ciągu znaków


eneduerabe

Rekomendowane odpowiedzi

witam,

mam ciąg znaków, na przykład:

ala ma kota ala ma psa ala nie ma nic ala jest fajna ala nie pisze postów

w którym chcę zamienić tylko powiedzmy dwa wystąpienia 'ala' na inne, czyli finalnie chciałbym otrzymać ciąg np.

nieala ma kota nieala ma psa ala nie ma nic ala jest fajna ala nie pisze postów.

jak to zrobić? próba z str_replace i czwartym argumentem jak na stronie https://php.net/manual/pl/function.str-replace.php niestety nic mi nie dała. jak to zrobić?

pozdrawiam serdecznie

Odnośnik do komentarza
Udostępnij na innych stronach

Możnaby rekurencyjnie strpos() sprawdzić gdzie znajduje się interesujące nas powtórzenie a później zamienić substr_replace()...

Ale jeśli sytuacja wygląda tak jak tutaj (wyrazy) to explode() po spacji i jedna pętla zamieniająca tylko x pierwszych wyrazów a później implode().

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

Możnaby rekurencyjnie strpos() sprawdzić gdzie znajduje się interesujące nas powtórzenie a później zamienić substr_replace()...

Ale jeśli sytuacja wygląda tak jak tutaj (wyrazy) to explode() po spacji i jedna pętla zamieniająca tylko x pierwszych wyrazów a później implode().

no właśnie myślałem nad rozwiązaniem z pętlą, ale sądziłem, że jest może w php jakaś funkcja wbudowana, o której nie wiem, która potrafi zamienić tylko N wystąpień danego ciągu znaków w jakimś tekscie, a nie wszystkie. bo pewnie funkcja wbudowana byłaby szybsza, niż napisana, zewnętrzna.

pozdrawiam serdecznie

Odnośnik do komentarza
Udostępnij na innych stronach

Jest jeszcze preg_replace() (parametr limit), ale nie wiem czy pętla nie będzie szybsza :)

dzięki, właśnie o preg_replace mi chodziło :P. czy jest szybsza od pętli, hm nie wiem, może kiedyś to sprawdzę doświadczalnie. w każdym razie ja osobiście wolę korzystać z funkcji wbudowanej, niż pisanej samemu, bo wg jest dużo mniejsze prawdopodobieństwo, że będzie w niej błąd, niż w napisanej przeze mnie, nawet jeżeli będzie ona delikatnie wolniejsza ;)

dziękuję w każdym razie za pomoc.

pozdrawiam serdecznie

Odnośnik do komentarza
Udostępnij na innych stronach

Funkcja wbudowana o danej funkcjonalności powinna być znacznie szybsza od zaimplementowanej samemu w php.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności