Merhabalar şuan soğuk odamdan yazmaktayım :) . Bugün karşılaştığım bir ufak bir sorunu burada da dile getirmek istedim zira bu tarz sorunlarla herkes karşılaşabilir. Aslında problem benim genelde siteleri kendi sunucumda barındırdığım için php eklentilerinin hemen hemen hepsi açık olmasından kaynaklanıyor. Bugün bu olay bir tokat gibi yüzüme vurdu desem yeridir. Malum normal veritabanı bağlantısı için mysql_connect yerine mysqli kullanmaktayım nedeni ise kullanım kolaylığı daha derli toplu ve nesnel olması. Neyse uzatmadan konuya dönersek bir firma için bayilerinin listesi için ufak bir betik geliştirdim ve doğal olarak da alışkanlık olan veritabanı bağlantılarında mysqli kullandım.

Neyse uygulamayı atıp bakmak istediğimde MYSQLI eklentisinin yüklü olmadığını söyleyen bir uyarı ile karşılaştım. Bu durumda kodları tekrar MYSQL ( mysql_connect gibi ) olarak düzenlemek zor geldi. Ben de bir ihtimal bu olayı dl() fonksiyonunu kullanarak çözmeye çalıştım ve nitekim de başarılı oldum. Bir ihtimal dedim çünkü çoğu hosting sağlayan firma bazı güvenlik önlemlerinden ötürü bu tarz fonksiyonları disable etmesidir.  Çok konuştum değil mi ? Öyleyse buyrun kod aşağıda

if (!extension_loaded('mysqli')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_mysqli.dll');
    } else {
        dl('mysqli.so');
    }
}

yukarıdaki extension_loaded() fonksiyonu ile o eklentinin yüklü olup olmadığını kontrol ediyoruz kullanılması durumunda bize true ya da false olarak dönmektedir. PHP_OS ile de php ‘nin yüklü olduğu sunucunun işletim sistemi hakkında bilgi ediniyoruz. Buna göre sunucumuz windows ise php_mysqli.dll olarak belirtiriyoruz eklentimizi eğer *NIX turevi bir işletim sistemi ise php_mysqli.so olarak eklentiyi belirtiyoruz.

Evet burdan anladığımız şudur ki dl() fonksiyonu eğer kullanıma açıksa yüklü olmayan herhangi bir eklentiyi o an için uygulamamıza kullanabilmek için yükleyebiliyoruz. Unutmadan yüklemek istediğiniz eklenti sunucuda kurulu olması gerekir fakat açık olmayabilir..