Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja "gubi" polskie znaki
Forum PHP.pl > Forum > PHP
Arek00
mam taką funkcję do "kolorowania" znalezionych wyrazów w ciągu:

  1. <?php
  2.     function str_highlight2($text, $needle) {
  3.         $highlight = '<font color=red>1</font>';
  4.  
  5.         $pattern = '#(?!<.*?)(%s)(?![^<>]*?>)#';
  6.         $pattern .= 'i';
  7.          $needle = (array) $needle;
  8.          foreach ($needle as $needle_s) {
  9.             $needle_s = preg_quote($needle_s);
  10.             $regex = sprintf($pattern, $needle_s);
  11.             $text = preg_replace($regex, $highlight, $text);
  12.          }
  13.          return $text;
  14.     }
  15. ?>


gdy jest w takiej postaci działa bez względu na wielkość liter, daje to ta linijka:
Kod
$pattern .= 'i';

zauważyłem że jeśli w ciągu w którym chcę coś podświetlić jest litera ó to efekt jest taki:
Kod
w odr&oacute;żnieniu od

jeżeli usunę tą linijkę to ó jest wyświetlane poprawnie

ktoś wie jak to poprawić? strona jest w utf-8
punoljoe
a w czym zapisujesz plik? poza tym, że dasz nagłówek kodowania to nie znaczy,że temat jest załatwiony. Spróbuj wczytać plik np. w Zajączku, Pajączku czy innym wynalazku cywilizacyjnym , a potem zapisać i wrzucić na serwer. Powinno pomóc ;p
Arek00
to nie będzie raczej w tym problem bo jeśli wyświetlę tekst przed użyciem funkcji i po jej użyciu to w pierwszym przypadku jest ok a w drugim jest źle. funkcja jest umieszczona w tym samym kawałku kodu co kod który wyświetla ten tekst więc kodowanie jest na pewno to samo
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.