पता लगाएं कि स्ट्रिंग बाइनरी है - PHP

मैं कैसे निर्धारित कर सकता हूं कि किसी स्ट्रिंग में गैर-प्रिंट करने योग्य वर्ण हैं या संभवतः बाइनरी डेटा है?

यह यूनिट परीक्षण / डिबगिंग के लिए है - इसे सटीक होने की आवश्यकता नहीं है।

उत्तर:

जवाब के लिए 2 № 1

यह करना होगा।

function isBinary($str) {
return preg_match("~[^x20-x7Etrn]~", $str) > 0;
}

जवाब के लिए 0 № 2

गैर-प्रिंट करने योग्य पात्रों की खोज करने के लिए, आप इसका उपयोग कर सकते हैं ctype_print (http://php.net/manual/en/function.ctype-print.php)।


जवाब के लिए 0 № 3

एक रेगेक्स प्रतिस्थापित करें, "[: print:]" को "" के साथ बदल दें, और यदि परिणाम "" है, तो इसमें केवल प्रिंट करने योग्य वर्ण हैं, अन्यथा इसमें गैर-प्रिंट करने योग्य वर्ण भी शामिल हैं।


जवाब के लिए 0 № 4

एक हैकी समाधान (जिसे मैंने अक्सर देखा है) एनयूएल की खोज करेगा वर्ण।

if (strpos($string, "")===FALSE) echo "not binary";

एक और परिष्कृत दृष्टिकोण यह जांचना होगा कि स्ट्रिंग में वैध यूनिकोड है या नहीं।


संबंधित सवाल
सबसे लोकप्रिय