झंडे को different page of the documentation में समझाया गया है।
FILTER_FLAG_STRIP_LOW
इनपुट में स्ट्रिप्स बाइट्स एक संख्यात्मक मान < 32 है, सबसे विशेष रूप null bytes और ASCII घंटी के रूप में अन्य control characters इस तरह के। यह एक अच्छा विचार है यदि आप किसी अन्य एप्लिकेशन में इनपुट पास करना चाहते हैं जो null-terminated strings का उपयोग करता है। सामान्य रूप से, 32 से कम यूनिकोड कोडपॉइंट वाले वर्ण उपयोगकर्ता इनपुट में नहीं होने चाहिए, न्यूलाइन वर्ण 10 और 13.
FILTER_FLAG_STRIP_HIGH
इनपुट संख्या में 127 बाधाओं को स्ट्रिप्स बाइट्स को छोड़कर नहीं होना चाहिए। लगभग हर एन्कोडिंग में, उन बाइट्स गैर-ASCII वर्णों का प्रतिनिधित्व करते हैं जैसे कि ä
, ¿
, 堆
इत्यादि। इस ध्वज को पास करना broken string encoding के लिए बैंड-सहायता हो सकता है, जो security vulnerability बन सकता है। हालांकि, लगभग सभी उपयोगकर्ता इनपुट में गैर-ASCII वर्णों की अपेक्षा की जाती है।
संक्षेप में:
filter_var("\0aä\x80", FILTER_SANITIZE_STRING) == "\0aä\x80"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW) == "aä\x80"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH) == "\0a"
filter_var("\0aä\x80", FILTER_SANITIZE_STRING,
FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) == "a"
यह अगर वहाँ एक STRIP_LOW_EXCEPT_NEWLINB झंडा था बहुत अच्छा होगा साथ
ASCII
मूल्य के साथ वर्ण निकाल दें< 32
निकालें वर्ण, चूंकि हम एक हैं textarea-field से न्यूलाइन वर्ण रखने के लिए ई केस। हां, कोई नहीं है, ताकि विशेष मामला संभाला जाना चाहिए। – itpastorn
आपके उदाहरणों में कुछ काम नहीं कर रहा है, कृपया एक नज़र डालें https://eval.in/935865 –
यह एक अच्छा उदाहरण है https://eval.in/935902 –