PHP'de "Error: Call to undefined function mb_internal_encoding()" hatası nasıl çözülür?

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?

1 Beğeni

“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.

1 Beğeni