2012-02-19 14 views
17

जैसे अदृश्य पात्रों को देखने का कोई तरीका है क्या व्हाईटस्पेस, न्यूलाइन, और अन्य गैर-प्रिंटिंग वर्ण जैसे अदृश्य वर्णों को print_r() जैसे तरीके से देखने का कोई तरीका है?PHP: n

कारण मेरे सरणी में कुछ प्रकार का चरित्र है कि मैं चीजों को नहीं देख और तोड़ सकता हूं।

Object Object 
(
    [name] => name 
    [numbers] => Array 
     (
      [0] => 123 

      [1] => 456 
      [2] => 789 
    ) 
    [action] => nothing 
) 

[0] और [1] के बीच अजीब सफेद जगह देखें? प्रिंटिंग करते समय [0] एक नई लाइन भी मुद्रित हो जाती है। लेकिन मैं [0] पर कोई नई लाइन क्यों निर्दिष्ट नहीं कर सकता हूं इसलिए मैं काफी उलझन में हूं।

क्या PHP में कोई अंतर्निहित फ़ंक्शन है जो show_invisible(Object->numbers[0]) जैसा है और यह 123\n या इसी तरह दिखाएगा?

+0

हेक्स संपादक में आउटपुट देखें। कई अच्छे टेक्स्ट एडिटर्स में हेक्स मोड होता है। मुझे लगता है कि यह डीबगिंग के लिए PHP में हेक्स में परिवर्तित करने के लिए मुझे लगता है कि यह बहुत अधिक परेशानी होगी। मुझे मानव-पठनीय तरीके से गैर-प्रिंटबेल प्रदर्शित करने के लिए किसी भी फ़ंक्शन के बारे में पता नहीं है –

उत्तर

1

रहे हैं:

स्ट्रिंग addcslashes (स्ट्रिंग $ str, स्ट्रिंग $ charlist)

जो वर्णों से पहले बैकस्लाश के साथ एक स्ट्रिंग वापस करेगा। एक उदाहरण होगा:

<?php 
echo addcslashes('foo[ ]', 'A..z'); 
// output: \f\o\o\[ \] 
// All upper and lower-case letters will be escaped 
// ... but so will the [\]^_` 
?> 
4

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

PHP - print string with control characters

इसे ठीक का एक सरल str_replace("\n",'\n',$string) तरह है, लेकिन आप शायद सरणी पर एक समारोह कॉलबैक के लिए समाधान अनुकूलित उन अक्षरों को परिवर्तित करने के लिए कर सकता है।

2

तुम सिर्फ अपने php स्क्रिप्ट चलाने सकता है, और पाइप यह सीधे आप addcslashes समारोह का उपयोग कर सकते hexdump -C

27

न केवल \r, \n आदि सभी अदृश्य पात्रों को देखने के लिए ... यह json_encode एड संस्करण देखने के लिए अच्छा है और सब कुछ स्पष्ट है:

$str = "..."; 
echo json_encode($str); 
1

इनपुट स्ट्रिंग का सटीक प्रतिकृति प्राप्त करने के लिए, आसपास के " और बिना क्रमबद्धता के, इस रैपर का उपयोग json_encode():

के लिए करें
substr(json_encode((string)$string), 1, -1) 

यह स्ट्रिंग कास्टिंग करता है और JSON मानक के " को हटा देता है।

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