2012-10-06 17 views
14

मेरे पास पाठ्यक्रम के स्थान से उत्साहित दो शब्द हैं, और मुझे पहले और बाद में कई जगहों को बिना किसी बीच के रिक्त स्थान को हटाने के लिए क्या करना है।स्ट्रिंग से पहले और बाद में रिक्त स्थान कैसे निकालें?

मैं इससे पहले और बाद में रिक्त स्थान कैसे हटा सकता हूं?

उत्तर

43

आप उस के लिए regex की जरूरत नहीं है, trim() का उपयोग करें:

$words = '  my words  '; 
$words = trim($words); 
var_dump($words); 
// string(8) "my words" 

इस समारोह की शुरुआत और str के अंत से छीन लिया सफेद स्थान के साथ एक स्ट्रिंग देता है।

+0

यह मेरे लिए कैसे काम नहीं करता है? स्ट्रिंग के बाद भी मैं अपने सफेद रिक्त स्थान देखता हूं। कोई संकेत? किसी को ? – ihue

+0

शायद वे वास्तव में सफेद जगह नहीं हैं। मुझे Office Word से ग्रंथों के साथ इस समस्या का सामना करना पड़ा। –

5

पूर्णता के लिए (के रूप में इस सवाल का टैग है regex), यहाँ regex में एक trim() reimplementation है:

function preg_trim($subject) { 
    $regex = "/\s*(\.*)\s*/s"; 
    if (preg_match ($regex, $subject, $matches)) { 
     $subject = $matches[1]; 
    } 
    return $subject; 
} 
$words = '  my words  '; 
$words = preg_trim($words); 
var_dump($words); 
// string(8) "my words" 
1

किसी कारण फ्लॉप ऊपर दो समाधान मेरे लिए काम किया के लिए, तो मैं इस समाधान के साथ आया था।

function cleanSpaces($string) { 
    while(substr($string, 0,1)==" ") 
    { 
     $string = substr($string, 1); 
     cleanSpaces($string); 
    } 
    while(substr($string, -1)==" ") 
    { 
     $string = substr($string, 0, -1); 
     cleanSpaces($string); 
    } 
    return $string; 
} 
+0

ध्यान रखें कि यह काम कर सकता है, रिकर्सन के लिए ओवरहेड यह बेहद धीमी और अक्षम बनाता है। मुझे यकीन नहीं है कि क्यों ट्रिम आपके लिए काम नहीं करता क्योंकि इसे किसी भी स्ट्रिंग पर ठीक काम करना चाहिए। –

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