2009-12-01 16 views
7

क्या php स्टॉप को किसी फ़ाइल को संसाधित करने का कोई तरीका है और इसे केवल उस भाग के साथ काम करना है जिसे पहले से ही पार्स किया गया है। मेरा मतलब यह है:रोकें php प्रसंस्करण फ़ाइल

<some data here> 
<?php phpinfo(); [IS THERE ANY THING I CAN PUT HERE] ?> 
<more data> 
[IS THERE ANY THING I CAN PUT HERE] 
<?HOW CAN I MAKE PHP NOT PARSE THIS?> 

क्या पहले PHP भाग के बाद PHP को अनदेखा करने के लिए वैसे भी है?

+1

ठीक है मैं काट दूंगा ... मैं उत्सुक हूं, आप क्यों चाहेंगे? आप वास्तव में क्या करने की कोशिश कर रहे हैं? – cletus

+0

क्या आप बाकी फाइल को कच्चे टेक्स्ट के रूप में आउटपुट करना चाहते हैं? – SLaks

उत्तर

2

आप फ़ाइल को संसाधित करने के लिए PHP को बताने के लिए exit कीवर्ड का उपयोग कर सकते हैं।

+0

क्या यह सुनिश्चित करेगा कि यह बाकी फ़ाइल को भी पार्स नहीं करेगा? – SLaks

+0

सही ........ –

+0

हां ... 'निकास' कीवर्ड विशेष रूप से PHP को पार्सिंग को रोकने के लिए कहता है, जो पहले से मौजूद है उसे फ्लश करें, और इसे वापस किए गए नियंत्रण पर वापस लौटें। – Amber

10

एक अन्य समाधान __halt_compiler उपयोग करने के लिए हो सकता है:

संकलक के निष्पादन रुक जाता है। यह PHP स्क्रिप्ट्स, जैसे फ़ाइलों की स्थापना में डेटा एम्बेड करने के लिए उपयोगी हो सकता है। डेटा शुरू की

बाइट स्थिति __COMPILER_HALT_OFFSET__ निरंतर जो केवल अगर वहाँ एक __halt_compiler() फ़ाइल में प्रस्तुत परिभाषित किया गया है द्वारा निर्धारित किया जा सकता है। जब आप PHP और (संभवतः बाइनरी) डेटा एम्बेड करने के लिए एक एकल फाइल में जरूरत

एक ठेठ उपयोग, Phar archives के लिए है, और PHP कोड है कि डेटा के लिए उपयोग किया जाना चाहिए।


और वहाँ वास्तव में एक अंतर है: इस कोड:

blah blah 
<?php phpinfo(); ?> 
glop glop 
<?php exit(); ?> 
<?HOW CAN I MAKE PHP NOT PARSE THIS?> 

मुझे एक Parse error: syntax error, unexpected T_STRING
हो जाता है (शायद इसलिए क्योंकि मैं short_open_tag सक्षम किया गया है, मुझे लगता है)


इस जबकि एक:

blah blah 
<?php phpinfo(); ?> 
glop glop 
<?php __halt_compiler(); ?> 
<?HOW CAN I MAKE PHP NOT PARSE THIS?> 

ठीक काम करता है - यह अमान्य PHP कोड __halt_compiler() पर कॉल के बाद होता है।

+0

अच्छी टिप! क्या बाकी फाइल ब्राउज़र पर भेजी जाएगी (फसल नहीं/कटौती)? यदि ऐसा है तो यह शुरुआत में केवल छोटे PHP कोड के साथ लंबे पृष्ठों को संभालने में तेजी ला सकता है (__halt_compiler(); अंतिम पंक्ति के रूप में), या PHP द्वारा शामिल शुद्ध HTML पेज (एक पहली पंक्ति के रूप में जोड़ना) । – FrancescoMM

4

मेरा मानना ​​है कि आपको केवल return 0; (या कोई अन्य मूल्य) लिखना है, PHP इस फ़ाइल को पार्स करना बंद कर देगा और जो भी इसे आमंत्रित करेगा उसे वापस कर देगा। यह तब उपयोगी होता है जब आपको एक फ़ाइल में निष्पादन को रोकने की आवश्यकता होती है लेकिन die() या exit() पूरी तरह से नहीं चाहती।

+0

जहां तक ​​मैं समझता हूं कि यह वास्तव में * पार्सिंग * फ़ाइल को रोक नहीं देता है, लेकिन यह * निष्पादन * बंद हो जाता है जब यह 'वापसी' तक पहुंच जाता है –

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