2011-03-22 14 views
7

पर विस्फोट हो रहा है मैं एक नल चरित्र की तरह दिखने पर एक स्ट्रिंग विस्फोट करने की कोशिश कर रहा हूं।PHP नल चरित्र

यही वह है जो मैं उपयोग कर रहा हूं: $exp = explode('\x00', $bin);

हालांकि यह काम नहीं करता है। हालांकि, अगर मैं $exp = explode($bin[5], $bin); करता हूं (जहां का चरित्र 5 यह चरित्र है जिसे मैं विस्फोट करना चाहता हूं) यह ठीक काम करता है।

अगर मैं var_dump($bin[5]) कर यह मुझे उस में एक प्रश्न चिह्न () के साथ वर्ग ब्लॉक से पता चलता है, और स्रोत देखें में मुझे मिलता है: �

किसी को भी मुझे बता सकते हैं सबसे अच्छा तरीका है इस पर विस्फोट के लिए होगा क्या चरित्र? या यहां तक ​​कि अगर यह शून्य चरित्र है (जो कि एसीआई टेबल के अनुसार है, जब तक कि मैं इसे सब गलत नहीं पढ़ रहा हूं)।

धन्यवाद

उत्तर

13

दोहरे उद्धरण चिह्नों का प्रयास करें:

$exp = explode("\x00", $bin); 

वैकल्पिक रूप से, बराबर ASCII वर्ण कोड को पकड़ने और chr का उपयोग कर इसे पारित।

$char = ord($bin[5]); 

// Replace this with the actual number returned from ord 
$exp = explode(chr($char), $bin); 

यह बाद का उदाहरण संभावना को समाप्त करता है कि यह वास्तव में एक शून्य चरित्र नहीं हो सकता है यदि आपने इसे पहले ही निर्धारित नहीं किया है।

+0

यह सही है। "यदि स्ट्रिंग डबल-कोट्स (") में संलग्न है, तो PHP विशेष वर्णों के लिए अधिक भागने के दृश्यों की व्याख्या करेगा: .... " – Unicron

+1

धन्यवाद डबल कोट्स काम करते हैं। अब मैं आपको प्रतिनिधि कैसे दे सकता हूं? वोट कहते हैं कि 15 प्रतिष्ठा की आवश्यकता है -.- –

+2

@ होश आप अपने उत्तर को चेक मार्क – Unicron

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