Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przetwarzanie tekstu
Forum PHP.pl > Forum > PHP
michal_s
Witam. Za pomocą funkcji strpos pobieram miejsce, na którym znajduje się interesujący mnie znak i mam teraz pytanie jak wiedząc gdzie się znajduję mogę go zamienić na coś innego. Szukam (bezskutecznie...) funkcji, która w ciągu by wstawiała na podanym w parametrach miejscu znak (też podany) zamiast tego, który tam jest. Ma wykonywac zamianę. Istnieje taka funkcja? z góry dzięki.
bastard13
Używając strpos() zastąpisz tylko pierwsze wystąpienie danej litery. Możesz ciąg traktować jako tablicę, czyli:
  1. $text = 'some cool text';
  2. $position = strpos($text, 'o');
  3. $text[$position] = 'x';
  4. echo $text;


lub możesz skorzystać z funkcji str_replace(), aby zastąpić wszystkie wystąpienia liter:
  1. <?php
  2. $text = 'some cool text';
  3. echo str_replace('o', 'x', $text);
mortus
  1. $tekst = 'krofa';
  2. $znak1 = 'f';
  3. $znak2 = 'w';
  4. echo '<p>'.$tekst.'</p>';
  5. $tekst[strpos($tekst, $znak1)] = $znak2;
  6. echo '<p>'.$tekst.'</p>';

Można również użyć str_replace() z ostatnim parametrem ustawionym na 1:
  1. $tekst = 'krofa';
  2. $znak1 = 'f';
  3. $znak2 = 'w';
  4. echo '<p>'.$tekst.'</p>';
  5. $tekst = str_replace($znak1, $znak2, $tekst, 1);
  6. echo '<p>'.$tekst.'</p>';

Zadziała to tak samo, ponieważ strpos() zwraca "miejsce" wystąpienia pierwszego znaku w ciągu. No chyba, że użyjesz strpos() z ustawionym drugim parametrem.
Podobnie jak str_replace() można użyć wyrażeń regularnych i preg_replace().

EDIT
Spóźniłem się. Tyle rozwiązań ilu programistów.
michal_s
Jesteście genialni. Dzięki wielkie;)
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.