Košík je prázdný

Vývoj softwaru a webových aplikací v jazyce PHP může občas narazit na různé chyby, které brání správnému fungování aplikace. Jednou z takových chyb je "Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding()". Tento článek poskytuje podrobný návod, jak tento problém řešit a zabránit jeho opětovnému výskytu.

Identifikace problému

Chyba "Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding()" se vyskytuje v PHP skriptech, když je zavolána funkce mb_convert_encoding() bez toho, aby bylo nainstalováno a aktivováno rozšíření Multibyte String (mbstring). Rozšíření mbstring poskytuje funkcionalitu pro práci s multibyteovými řetězci, což je nezbytné pro správnou podporu Unicode ve vašich aplikacích.

Krok 1: Ověření instalace rozšíření mbstring

Prvním krokem je zkontrolovat, zda je na vašem serveru nainstalováno rozšíření mbstring. To lze provést několika způsoby:

  • Vytvoření souboru phpinfo.php: Vytvořte PHP soubor s následujícím kódem a umístěte ho na váš webserver:
<?php
phpinfo();
?>

Po vytvoření tohoto souboru otevřete tento soubor ve webovém prohlížeči. Pomocí funkce vyhledávání v prohlížeči vyhledejte "mbstring". Pokud najdete konfiguraci mbstring, znamená to, že rozšíření je nainstalováno.

  • Použití příkazové řádky: Pokud máte přístup k příkazové řádce serveru, můžete zkontrolovat instalaci mbstring pomocí příkazu php -m, který vypíše všechna PHP rozšíření. Pokud v seznamu uvidíte "mbstring", rozšíření je nainstalováno.

Krok 2: Instalace nebo aktivace rozšíření mbstring

Pokud jste zjistili, že rozšíření mbstring není nainstalováno, budete muset provést jeho instalaci nebo aktivaci.

  • Na Debianu/Ubuntu:

    • Instalace rozšíření mbstring lze provést pomocí příkazu: sudo apt-get install php-mbstring
    • Po instalaci restartujte webový server, například Apache pomocí příkazu: sudo service apache2 restart
  • Na CentOS/RHEL:

    • Instalaci proveďte pomocí: sudo yum install php-mbstring
    • Po instalaci restartujte webový server, například: sudo systemctl restart httpd
  • V případě použití XAMPP nebo podobného lokálního serveru:

    • Otevřete konfigurační soubor php.ini a vyhledejte řádek ;extension=mbstring.
    • Odstraňte středník na začátku řádku pro odkomentování a aktivaci rozšíření.
    • Restartujte XAMPP nebo službu PHP.

Krok 3: Testování funkčnosti

Po instalaci nebo aktivaci rozšíření mbstring otestujte jeho funkčnost. To lze provést vytvořením jednoduchého PHP skriptu, který používá funkci mb_convert_encoding() a spuštěním tohoto skriptu ve webovém prohlížeči.

<?php
$text = "Příliš žluťoučký kůň";
$convertedText = mb_convert_encoding($text, "UTF-8");
echo $convertedText;
?>

Pokud skript vrátí očekávaný výstup bez chyby, rozšíření mbstring je správně nainstalováno a aktivováno.

 

Řešení chyby "Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding()" v PHP spočívá v ověření, instalaci nebo aktivaci rozšíření mbstring. Tento článek poskytuje detailní postup, jak tento problém vyřešit a zajistit, aby vaše PHP aplikace mohla bez problémů pracovat s multibyteovými řetězci.