file_get_contents() fonksiyonu https problemi
file_get_contents() fonksiyonu lokal dosya içeriğini bir dizge olarak döndürebileceği gibi url bazlı olarak ta çalışarak belirtilen site içeriğini de döndürmektedir.
Lokal sunucularda yada bazı durumlarda hosting firmalarında yapılandırmadan kaynaklı olarak file_get_contents() fonksiyonu kullanılmak istendiğinde şu hata mesajını alabilirsiniz.
Warning: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?
file_get_content() open ssl problemi
Bu hatayı https:// güvenli SSL sertifikası bulunan sitelerden veri çekmeye çalıştığında alırsınız. Örnek olarak aşağıda file_get_contents() fonksiyonu kullanılarak https://www.emrahyuksel.com.tr sitesine istekte bulunulmuştur. Fakat php.ini dosyasında yer alan php_openssl.dll dosyası aktif olmadığından dolayı “Warning: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?” hatası alındı.
<?php echo file_get_contents("https://www.emrahyuksel.com.tr");
file_get_contents metodunun https sitelerde kullanımından kaynaklı oluşan “Warning: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?” hatasını çözmek için php.ini dosyasında düzenleme yapmamız gerekiyor.
localhost php.ini dosyası nerede?
php.ini dosyasının düzenlenmesi ile ilgili detaylı makaleye şu linkten ulaşabilirsiniz. localhost php.ini dosyası nerede?
Hatanın Çözümü
php.ini dosyasını açın ve “php_openssl.dll” ibaresini aratın.
görselde gördüğünüz satırların başında ; (noktalı virgül) işareti bulunuyorsa o satır ilgili dll dosyasının pasif olduğu anlamına geliyor. Aktif etmek için tek yapmamız gereken ; (noktalı virgül) ibaresini kaldırarak kaydetmektir. İlgili satırın son hali şu şekilde olmalıdır.
İşlemi tamamladıktan sonra php.ini dosyasını kaydederek kapatıyoruz. Ama yaptığımız değişikliklerin geçerli olması için Apache sunucusunu restart ederek yeniden başlatmamız gerekiyor. Apache sunucu yeniden başlattıktan sonra tekrar file_get_contents() fonksiyonunu test edelim.
<?php echo file_get_contents("https://www.emrahyuksel.com.tr");
Artık file_get_contents() metoduyla birlikte https içerikli bağlantılardan da veri çekme işlemini gerçekleştirebiliyoruz.
İlk sen öğren
E-posta listemize abone olarak yayınlanacak içeriklerden ilk sen haberdar ol.
Ücretsiz kurs ister misin kaydol!
Çeşitli kamu kuruluşlarında edindiğim 14 yıla yakın tecrübenin ardından şu an İstanbul Büyükşehir Belediyesi’nde İş Geliştirme ve Proje Yöneticisi olarak 100+ kişilik proje grubuna liderlik ediyorum.
Son yıllarda çeşitli platformlar üzerinde 400 ‘den fazla konu üzerine yayınladığım eğitim videoları 3.000.000’u aşan izlenme almış bulunmaktadır. 2017 itibariyle Udemy’de, yazılım konularında kapsayıcı müfredata sahip eğitimler üretiyorum. 2017 yılında Udemy Türkiye tarafından en iyi 3 eğitmenden biri olarak seçildim.
Hocam apache server nasıl restartlanır.
Teşekkürler. 🙂