2012-03-21 22 views
12

PHP aşağıdaki kod parçası ile garip bir hata mesajı (ben bir PHP uzmanı değilim) alıyorum: Ben temelde metin içeriğini yüklemek çalışıyorumPHP: tanımsız fonksiyon gzdecode() çağır

if ($file_loc != NULL) { 
    if (file_exists($file_loc)) { 
     printf(" file exists"); 
     $handle = fopen($file_loc, "rb"); 
     $contents = fread($handle, filesize($file_loc)); 
     fclose($handle); 
     $result = gzdecode($contents); 
    } 
} 

bir gzip dosyasından. Aşağıdaki hatayı alıyorum: Ben documentation bakmak zaman, Henüz

Fatal error: Call to undefined function gzdecode() in ...\sites\MyScripts\fw2.php on line 80 

, ben ekstra bir kütüphane yer gerekir gibi görünmüyor ya da yanlış oluyorum? Bu sorunu nasıl çözebilirim?

GÜNCELLEME

bu kütüphane benim PC'de yüklü olup olmadığını kontrol etmek için başka question takiben, cevap evet, öyle edilir. PHP bilgi Dan

:

<?php 

echo phpversion().", "; 

if (function_exists("gzdecode")) { 
    echo "gzdecode OK, "; 
} else { 
    echo "gzdecode no OK, "; 
} 

if (extension_loaded('zlib')) { 
    echo "zlib extension loaded "; 
} else { 
    echo "zlib extension not loaded "; 
} 

?> 
:

enter image description here

Yani bu ben denedim II

GÜNCELLEME ... daha kafa karıştırıcı oluyor

ve ben:

5.2.17, gzdecode no OK, zlib extension loaded 
+2

Hmm olduğunu ilginç. * "PHP'de Zlib desteği varsayılan olarak etkin değildir." * Fakat * "PHP'nin Windows sürümü bu uzantı için yerleşik bir desteğe sahiptir. Bu işlevleri kullanmak için herhangi bir ek uzantı yüklemeniz gerekmez." * Not Tam olarak bunun ne anlama geldiğini% 100 kesin. Windows veya * NIX'de misiniz? – deceze

+1

Bir Acquia Dev Desktop kurulumu kullanarak Windows 7'deyim. – JVerstry

+0

Hm, bu * ilginç *. PHP'yi nasıl kurdunuz? –

cevap

4

Her zaman yüklü değil. the documentation Gönderen:

Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]

The Windows version of PHP has built-in support for this extension. You do not need to load any additional extensions in order to use these functions.

düzenlemek: bu hala kabul cevabı olduğundan, fonksiyon yerine önerilen eklemek için düzenlenebilir. PHP ile uyuşmadıkça, zlib kullanılmadığı sürece gzdecode kullanılamaz.

+0

Kontrol ettim ve kütüphane yüklendi ... – JVerstry

+0

'function_exists' gzdecode' için ne döndürüyor? –

+0

Kitaplık yüklendi, ancak işlev mevcut değil. Soruma ilişkin ikinci güncellememi görün. – JVerstry

18

Bazı kaynaklara göre, muhtemelen PHP 6'ya dahil edilecektir. El kitabında, neredeyse tüm işlevlerin, kullanıma hazır olduğunda, bir PHP sürüm numarası verdiğine dikkat edin. Garip bir şekilde, bir uyarı mesajı görüntülemesi gerektiğini düşünmüyorlar.

sağlama olmadan gzdecode için (benim için çalışıyor) bu kodu deneyin:

function gzdecode($data) 
{ 
    return gzinflate(substr($data,10,-8)); 
} 
+0

-1. Kılavuz her zaman% 100 doğru değildir ve bu işlev kesinlikle ** şu anda PHP5'te mevcuttur. PHP6'nın özellik seti kararlaştırılmış olmaktan çok uzaktır, bu nedenle bu fonksiyonun bir sonraki ana sürüm için ele alındığına dair beyanınız varsayımdan başka bir şey değildir. – Leigh

+0

ve bunu nasıl kanıtlayabilirsin? – user1122069

+0

Bu "PHP5" inde, bu diğer posterlerin hiçbiri de değildi! – user1122069