Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_replace zamiana ciągów zawierających nawiasy
Forum PHP.pl > Forum > Przedszkole
nergla
Mam taki kod (właściwie jego część),
  1. if(!function_exists("uncode")) {
  2. function uncode($text) {
  3. $text = preg_replace("/^:@$/D", ":@", $text); //w drugim parametrze powinien być kod encji
  4. $text = preg_replace("/^B)$/D", "B)", $text);
  5. $text = preg_replace("/^:|$/D", ":?", $text);
  6. $text = preg_replace("/^:D$/D", ":D;", $text);
  7. $text = preg_replace("/^:P$/D", ":P", $text);
  8. $text = preg_replace("/^:p$/D", ":p", $text);
  9. $text = preg_replace("/^:($/D", ":(", $text);
  10. $text = preg_replace("/^:o$/D", ":o", $text);
  11. $text = preg_replace("/^:O$/D", ":O", $text);
  12. $text = preg_replace("/^:)$/D", ":)", $text);
  13. $text = preg_replace("/^;)$/D", ";)", $text);
  14. return $text;
  15. }
  16. }


Dla jasności jest to część kodu który nie pozwala na zamianę się emotek tj. :) czy :P w ich dopowiedniki graficzne.

i pojawiają się błędy
Kod
Warning:  preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in (linia 4)
   Warning:  preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 4 in (linia 9)
   Warning:  preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in (linia 12)
   Warning:  preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in (linia 13)


Domyślam się że problem tyczy się nawiasów, więc jak zrobić/oznaczyć je żeby były interpretowane jako tekst?
wookieb
Przecież do takich emotek wystarczy ci http://php.net/str_replace, które jest znacznie szybsze.
nergla
Zamieniłem preg_replace na str_replace i działa, dzięki wookieb.
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.