2010-03-01 15 views
19

कभी कभी की सूची है, जबकि PHP में कोडिंग हम उन जैसे पार्स या सिंटैक्स त्रुटि मिलती है: मैं, जानना चाहते हैंसभी संभव पीएचपी त्रुटियों

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /var/www/example/index.php on line 4 

अगर वहाँ के लिए सभी संभव त्रुटियों कि PHP दुभाषिया की एक सूची है उत्पादन कर सकते हैं। मैंने php.net की खोज की है, लेकिन ऐसी चीज नहीं मिल सका। मुझे अकादमिक उद्देश्यों के लिए इस सूची की आवश्यकता है।

+0

कि त्रुटि शायद है सिर्फ इसलिए कि आप अपने पिछले लाइन बंद करने के लिए भूल गया था। – Layke

+3

@ लाइक: मुझे लगता है कि आपको फिर से प्रश्न पढ़ना है;) –

+0

हां, मैंने जानबूझकर ऐसा किया है, एक त्रुटि का उदाहरण प्राप्त करने के लिए। मुझे संभावित त्रुटि संदेशों की वास्तविक सूची प्राप्त करने में अधिक दिलचस्पी है, उन्हें हल करने में नहीं - यह एक और मुद्दा है :) –

उत्तर

9

कोई अच्छा तरीका नहीं है। Zend_Error() के लिए भी सुझाए गए grep भी बेकार है। इस सवाल में जो प्रकार आप दिखा रहे हैं उसकी त्रुटियां ज्यादातर बाइसन पार्सर जनरेटर द्वारा उत्पन्न होती हैं और PHP बस इसे वहां से ले जाती है। इसी तरह की चीजें ऑपरेटिंग सिस्टम द्वारा रिपोर्ट की गई त्रुटियों के साथ होती हैं (फ़ाइलों को खोलते समय त्रुटियों की तरह)। PHP डेवलपर्स वास्तव में इनके लिए एक अच्छी सूची नहीं बना सकते हैं क्योंकि त्रुटियां ऑपरेटिंग सिस्टम पर चल रही हैं और संकलन करते समय उपयोग किए जाने वाले संस्करणों पर निर्भर करती हैं।

zend_error() और php_Error_docref() के लिए grepping केवल एक चीज दिखा सकता है कि आप संभावित त्रुटि प्रकारों का एक सामान्य अवलोकन है लेकिन अब तक सभी त्रुटि संदेश नहीं हैं।

2

मैं इस तरह के एक सूची के बारे में पता नहीं कर रहा हूँ, लेकिन आप हमेशा डाउनलोड या चेकआउट php स्रोतों और

find . -name "*.c" | xargs grep "zend_error" 
+0

मैंने इसे माना है। अगर त्रुटियों पर कोई दस्तावेज नहीं है, तो मुझे ऐसा करना होगा। –

5

यदि संभव हो तो पीएचपी त्रुटियों की एक व्यापक सूची मौजूद है मैं नहीं जानता की तरह कुछ कर सकते हैं, लेकिन पार्सर त्रुटियों के बारे में आप चेकआउट चाहिए पीएचपी पार्सर की सूची टोकन

http://php.net/manual/en/tokens.php

यहाँ क्या मैनुअल कहते है:

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

+0

धन्यवाद यह सूची मेरे लिए भी काफी उपयोगी है! –

+0

-1 यह जानना अच्छा है, लेकिन यह त्रुटि संदेशों से कैसे संबंधित है? –

+0

@ पेक्का: यह लिंक आपको टोकन की सूची नाम से देता है, ताकि आप देख सकें कि आपके कोड में टोकन एक पार्सर त्रुटि का आह्वान करता है, इस प्रकार आप अपनी पार्स त्रुटि को हल कर सकते हैं, कृपया http के पृष्ठ पर पृष्ठ के शीर्ष पर संक्षिप्त परिचय पढ़ें : //php.net/manual/en/tokens।php –

0

यह नवीनतम PHP स्रोत (डुप्लीकेट सहित) पर मेरे लिए 1346 हिट देता है। यह जाने का एक अच्छा तरीका हो सकता है, हालांकि @ जोहान्स द्वारा उल्लिखित कारणों से पूरी सूची पूरी तरह से पूरी हो गई है।

दूसरी ओर, यह के रूप में मुझे लगता है वे रनटाइम के दौरान पार्सर द्वारा संकलित किया गया है, और स्रोत में कहीं भी सूचीबद्ध नहीं हैं, वैसे भी पार्स त्रुटि के एक विशिष्ट प्रकार परिभाषित करने के लिए बेहद मुश्किल हो जा रहा है।

क्या आप इस बारे में विस्तार से बता सकते हैं कि आपको इसकी क्या आवश्यकता है? हो सकता है कि आप त्रुटियों की एक "उप-वर्ग" परिभाषित कर सकें जो आपकी आवश्यकता के लिए पहले से ही पर्याप्त है।

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