Web projemde PHP kullanırken “Error: Call to undefined function mb_internal_encoding()” hatasıyla karşılaştım. Bu hata, projemde belirli bir fonksiyonu çağırmaya çalışırken meydana geliyor ve fonksiyonun tanımlanmadığını belirtiyor. PHP’de bu tür bir undefined function hatasıyla karşılaştığımda nasıl bir çözüm yolu izlemeliyim? Bu hatayı alıyorsam, eksik olan PHP modüllerini nasıl tespit edip yükleyebilirim?
“Error: Call to undefined function mb_internal_encoding()” Hatasının Çözümü
Bu hata, PHP’de Multibyte String (mbstring) uzantısının yüklü olmamasından kaynaklanır. mb_internal_encoding() fonksiyonu, iç karakter kodlamasını tanımlamak için kullanılır ve bu fonksiyon mbstring uzantısının bir parçasıdır. Söz konusu hatayla karşılaştığınızda izlemeniz gereken adımlar aşağıdaki gibidir:
1. PHP Versiyonunuzu Kontrol Edin
PHP versiyonunuzun güncel olup olmadığını kontrol edin. Güncel olmayan bir PHP versiyonu, çeşitli uyumsuzluk ve eksik modül sorunlarına yol açabilir.
Komut:
php -v
Ornek cikti:
root@sunucu:/# php -v
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies
2. Mbstring Uzantısının Yüklü Olup Olmadığını Kontrol Edin
Mbstring modülünün sisteminizde yüklü olup olmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
php -m | grep mbstring
Eğer bu komut bir çıktı vermezse, mbstring modülünüz yüklü değildir.
3. Mbstring Uzantısını Yükleyin
Eksik mbstring modülünü yüklemek için işletim sisteminize göre aşağıdaki komutları kullanabilirsiniz:
Debian/Ubuntu ve Türevleri İçin:
sudo apt-get install php-mbstring
CentOS/RHEL/Fedora İçin:
sudo yum install php-mbstring
4. PHP ve Web Sunucunuzu Yeniden Başlatın
Herhangi bir PHP uzantısını yükledikten sonra, PHP sunucunuzu yeniden başlatmanız gerekir. Bu işlem, değişikliklerin etkinleştirilmesini sağlar.
sudo systemctl restart php8.1-fpm
Adım 1’deki ki php -v çıktısında gördüğümüz php versiyonuna göre restart atma komutudur. Sizde php versiyonu farklı size restart komutunu düzenleyerek çalıştırmanız gerekiyor.
5. Değişikliklerin Doğru Bir Şekilde Uygulandığını Kontrol Edin
Yeniden başlatma işleminin ardından, mbstring modülünün doğru bir şekilde yüklendiğinden emin olmak için adım 2’deki komutu tekrar çalıştırabilirsiniz.
Bu adımları takip ederek “Error: Call to undefined function mb_internal_encoding()” hatasını çözebilirsiniz. PHP uygulamanızda bu ve benzeri hatalarla karşılaşmamak için, geliştirdiğiniz projenin gereksinimlerine uygun PHP uzantılarının yüklü olduğundan emin olmalısınız.
TERİMLER:
Mbstring: PHP’de çoklu bayt karakter setleri ile çalışmayı sağlayan bir uzantı/modüldür. Bu, PHP’nin Japonca, Çince gibi çoklu bayt kodlama sistemlerine sahip dillerle uyumlu çalışmasını sağlar.
Uzantı/Modül: PHP’de, belirli işlevlerin veya yeteneklerin eklenmesini sağlayan eklentilere verilen isimdir.