2011-01-03 14 views
5
//remove line breaks 
function safeEmail($string) { 
    return preg_replace('((?:\n|\r|\t|%0A|%0D|%08|%09)+)i' , '', $string); 
} 

/*** example usage 1***/ 
$from = 'HTML Email\r\t\n'; 

/*** example usage 2***/ 
$from = "HTML Email\r\t\n"; 

if(strlen($from) < 100) 
{ 
    $from = safeEmail($from); 

    echo $from; 
} 

1 रिटर्न एचटीएमएल ईमेल \ r \ टी \ N जबकि 2 रिटर्न एचटीएमएल ईमेलphp सिंगल और डबल उद्धरण

क्या उद्धरणों के साथ है? विशेष वर्णों के लिए

+0

संभावित डुप्लिकेट [PHP में सिंगल कोट और डबल कोट स्ट्रिंग के बीच अंतर] (http://stackoverflow.com/questions/3446216/difference-between-single-quote-and-double-quote-string-in -php) – marcog

+0

मुझे आपको थोड़ा जादू दिखाएं: google -> php एकल उद्धरण -> http://php.net/types.string -> आप यहां से अधिक पूर्ण और स्पष्ट जानकारी प्राप्त कर सकते हैं –

उत्तर

11

PHP Documentation

डबल-कोटेड और हियरडॉक वाक्यविन्यास, चर के विपरीत के अनुसार और भागने दृश्यों का विस्तार नहीं किया जाएगा जब वे एक उद्धृत स्ट्रिंग में होते हैं।

दूसरे शब्दों में, डबल उद्धृत तार विशेष वर्णों के लिए चर और भागने के दृश्यों का विस्तार करते हैं। एकल उद्धृत तार नहीं है।

तो उदाहरण 1 में, एकल उद्धृत स्ट्रिंग के साथ, स्ट्रिंग बिल्कुल ठीक है जैसा आप इसे देखते हैं। Slashes और सब।

लेकिन उदाहरण 2 में, स्ट्रिंग \r\t\n के साथ समाप्त होने के बजाय, यह एक कैरिज रिटर्न, एक टैब और फिर एक नई लाइन के साथ समाप्त होता है। दूसरे शब्दों में विशेष वर्णों के लिए भागने के दृश्यों का विस्तार किया जाता है।

+3

इसलिए, 'strlen ('एचटीएमएल ईमेल \ r \ t \ n') '= 16, 'strlen (" HTML ईमेल \ r \ t \ n ")' = 13, अगर यह किसी भी स्पष्ट बनाता है :) – jensgram

0

PHP में एकल उद्धरण के साथ उन विशेष वर्ण \ n \ r \ t ... अपेक्षित रूप से काम नहीं करता है। docs के अनुसार:

एक शाब्दिक एकल उद्धरण निर्दिष्ट करने के लिए, एक बैकस्लैश (\) के साथ यह बच। एक शाब्दिक बैकस्लैश निर्दिष्ट करने के लिए, इसे डबल करें (\\)। बैकस्लैश के अन्य सभी उदाहरणों को शाब्दिक बैकस्लैश के रूप में माना जाएगा: इसका मतलब है कि अन्य भागने के दृश्यों का उपयोग आप किया जा सकता है, जैसे कि \r या \n, आउटपुट को सचमुच किसी विशेष अर्थ के बजाय निर्दिष्ट किया जाएगा।

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