POSIX वर्ण वर्गों का उपयोगPHP मिलान नियंत्रण अक्षर लेकिन सफेद जगह नहीं?
मिलान कैसे करें [: cntrl:] लेकिन [: space:] को छोड़कर?
$message = ereg_replace("[[:cntrl:]]", "", $message);
POSIX वर्ण वर्गों का उपयोगPHP मिलान नियंत्रण अक्षर लेकिन सफेद जगह नहीं?
मिलान कैसे करें [: cntrl:] लेकिन [: space:] को छोड़कर?
$message = ereg_replace("[[:cntrl:]]", "", $message);
ereg_ * (POSIX) फ़ंक्शंस अब लंबे समय से बहिष्कृत किए गए हैं। इन तरीकों का उपयोग करके आपको contiue नहीं करना चाहिए।
POSIX Bracket Expressions[:cntrl:]
के अनुसार ASCII रेंज [\x00-\x1F\x7F]
(या यूनिकोड \p{Cc}
) और [:space:]
[ \t\r\n\v\f]
ले कर जाता है करने के लिए हल करता है। उन वर्णों को हल करने के लिए asciitable.com का उपयोग करके, आपको [\x20\x09-\x0D]
की बहिष्करण सूची के साथ छोड़ दिया गया है। "गणित करना" आपको [\x00-\x08\x0E-\x1F\x7F]
के साथ छोड़ दिया गया है।
$message = preg_replace('/[\x00-\x08\x0E-\x1F\x7F]+/', '', $message);
ध्यान दें कि VT
(कार्यक्षेत्र टैब) और FF
(फॉर्म फ़ीड, न्यू पेज) भी संरक्षित कर रहे हैं: और निम्न, पीएचपी 5.3 और ऊपर संगत है, सफ़ाई के साथ छोड़ देता है। भी अपनी स्थिति के आधार पर आप हो सकता है इन निकालना चाहते हैं:
$message = preg_replace('/[\x00-\x08\x0E-\x1F\x7F\x0A\x0C]+/', '', $message);
[[:cntrl:]]
मूल रूप से है [\x00-\x1f\x7F]
और [[:space:]]
[ \t\r\n\v\f]
(ref) के बराबर है, इतने लंबे समय के हाथ विधि [\x00-\x08\x0E-\x1F\7F]
उपयोग करने के लिए होगा (अंतरिक्ष 0x20 है और cntrl सीमा से बाहर, \t\r\n\v\f
\ x0D को x09 हैं \)
"असुरक्षित पात्रों" को परिभाषित –
परिभाषित "पलायन" –
मैं सवाल को अद्यतन किया है, धन्यवाद। – Howard