Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Od jakich ustawień serwera/php zależy zachowanie funkcji iconv?
Forum PHP.pl > Forum > Przedszkole
qrzysztof
Mam prosty skrypt, który wyświetla inne dane na komputerze lokalnym a inne na serwerze (Ubuntu 14.04).
Kod
if (function_exists('iconv'))
{
    echo 'iconv jest zainstalowane<br>';
}
else
{
    echo 'iconv <b>nie</b> jest zainstalowane<br>';
}


$l = setlocale  (LC_ALL,"0");
echo 'Locale: '.$l.'<BR>';

echo iconv('utf-8', 'ascii//translit', 'Język włoski');


Wyjście programu na komputerze lokalnym jest zgodne z oczekiwaniami:

iconv jest zainstalowane
Locale: C
Jezyk wloski

Natomiast na serwerze produkcyjnym wyświetla się:

iconv jest zainstalowane
Locale: C
J?zyk w?oski

Nie wiem skąd się bierze ta różnica. Wydaje mi się, że zależy albo od ustawień serwera albo od ustawień php. Od jakich?
SmokAnalog
Przeczytaj ten komentarz: http://php.net//manual/pl/function.iconv.php#74101
qrzysztof
No tak. Opłaca się czytać komentarze.

Po dodaniu
  1. setlocale(LC_CTYPE, 'pl_PL');

skrypt działa zgodnie z oczekiwaniami.

Zastanawiam się tylko czy mogę to sobie gdzieś skonfigurować (php.ini?). Ewentualnie gdzieś w systemie pogrzebać, żeby ustawić to na stałe.
Turson
Nie do końca to takie proste http://stackoverflow.com/questions/5075145...tion-in-php-ini
qrzysztof
Choć z drugiej strony zastanawiam się czy mi to właściwie potrzebne. Bo jeśli będę miał to ustawione w kodzie to odpadnie każdorazowe zmienianie w konfiguracji/systemie. Dobrze kombinuję?
SmokAnalog
W poważnych projektach zawsze najlepiej ustawić setlocale ręcznie. Wszystkie CMS-y i frameworki to robią.
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.