2012-03-21 17 views
12

मैं एक अजीब त्रुटि पीएचपी कोड का निम्न भाग के साथ संदेश (मैं एक PHP विशेषज्ञ नहीं हूँ) हो रही है:पीएचपी: अपरिभाषित समारोह gzdecode() पर की गई कॉल

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); 
    } 
} 

मैं मूल रूप से पाठ्य सामग्री को लोड करने के लिए कोशिश कर रहा हूँ एक gzipped फ़ाइल से। मैं निम्नलिखित त्रुटि मिलती है:

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

फिर भी, जब मैं documentation पर एक नज़र डालें, तो यह है कि मैं एक अतिरिक्त पुस्तकालय शामिल करने के लिए की आवश्यकता होगी नहीं लगता है, या मैं गलत जा रहा हूँ? कैसे मैं इस मुद्दे को हल कर सकता हूँ?

अद्यतन

इस पुस्तकालय मेरी पीसी पर स्थापित किया गया है या जांच करने के लिए एक और question के बाद, जवाब है हां, यह है।

पीएचपी जानकारी से:

enter image description here

तो यह अधिक से अधिक भ्रमित हो रही है ...

अद्यतन द्वितीय

मैं कोशिश की है:

<?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 "; 
} 

?> 

और मुझे मिलता है:

5.2.17, gzdecode no OK, zlib extension loaded 
+2

हम्म है, दिलचस्प। * "PHP में ज़्लिब समर्थन डिफ़ॉल्ट रूप से सक्षम नहीं है।" * लेकिन * "PHP के विंडोज संस्करण में इस एक्सटेंशन के लिए अंतर्निहित समर्थन है। इन कार्यों का उपयोग करने के लिए आपको कोई अतिरिक्त एक्सटेंशन लोड करने की आवश्यकता नहीं है।" * नहीं 100% निश्चित रूप से इसका क्या अर्थ है। क्या आप विंडोज़ या * एनआईक्स पर हैं? – deceze

+1

मैं एक्वाइया देव डेस्कटॉप स्थापना का उपयोग कर विंडोज 7 पर हूं। – JVerstry

+0

एचएम, वह * दिलचस्प है। आपने PHP कैसे स्थापित किया? –

उत्तर

4

यह हमेशा स्थापित नहीं होता है। the documentation से:

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.

संपादित करें: चूंकि यह स्वीकार किए जाते हैं जवाब अब भी है, मैं जोड़ने के लिए समारोह स्थानापन्न के रूप में सुझाव दिया है कि यह संपादित।

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

मैंने चेक किया और लाइब्रेरी स्थापित है ... – JVerstry

+0

'function_exists'' gzdecode' के लिए वापस क्या करता है? –

+0

लाइब्रेरी लोड की गई है, लेकिन फ़ंक्शन मौजूद नहीं है। मेरे प्रश्न पर मेरा दूसरा अपडेट देखें। – JVerstry

18

gzdecode तब तक उपलब्ध नहीं है जब तक PHP को zlib के साथ पालन नहीं किया जाता है। कुछ स्रोतों के मुताबिक इसे संभवतः PHP 6 में शामिल किया जाएगा। मैन्युअल में नोटिस जब यह बन गया/उपलब्ध हो तो लगभग सभी कार्यों ने PHP संस्करण संख्या दी है। विचित्र रूप से, वे नहीं सोचते कि इसे एक चेतावनी संदेश प्रदर्शित करने की आवश्यकता है।

चेकसम के बिना gzdecode के लिए (मेरे लिए काम करता है) के लिए इस कोड का प्रयास करें:

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

-1 वास्तव में गलत होने के लिए। मैनुअल हमेशा 100% सटीक नहीं होता है, और यह फ़ंक्शन निश्चित रूप से ** ** PHP5 में अभी उपलब्ध है। PHP6 का फीचर सेट निर्णय से बहुत दूर है, इसलिए आपकी घोषणा यह है कि यह फ़ंक्शन अगले प्रमुख संस्करण के लिए स्लेट किया गया है, लेकिन धारणा के अलावा कुछ भी नहीं है। – Leigh

+0

और आप यह कैसे साबित कर सकते हैं? – user1122069

+0

यह मेरे "PHP5" में नहीं था और न ही इन अन्य पोस्टरों में से कोई भी! – user1122069

संबंधित मुद्दे