अंडरस्कोर के साथ रिक्त स्थान की जगह


136

मुझे लगता है कि उन की तरह एक नाम दर्ज होगा एक PHP स्क्रिप्ट है: Alex_Newton,

हालांकि, कुछ उपयोगकर्ता अंडरस्कोर के बजाय एक स्थान का उपयोग करेंगे, इसलिए मेरा सवाल है:

मैं PHP में अंडरस्कोर के साथ रिक्त स्थान को कैसे ऑटो करूँ?

जवाबों:



70

जैसा कि अन्य लोगों ने बताया है कि इसका उपयोग कैसे करना है str_replace, तो आप इसे प्राप्त करने के लिए रेगेक्स का भी उपयोग कर सकते हैं।

$name = preg_replace('/\s+/', '_', $name);

11
यह इस अर्थ में एक बेहतर समाधान है कि यह एक एकल अंडरस्कोर के साथ कई स्थानों को बदलता है जो आमतौर पर वांछित आउटपुट होता है।
२०:४१ पर ठंढा ज्वार

5
इसके अलावा टैब और जो भी हो
Loupax





7

आप अंडरस्कोर जैसे शब्दों को शुरुआत या अंत से रोकने के लिए भी कर सकते हैं जैसे कि _words_more_words_, यह सफेद रिक्त स्थान के साथ शुरुआत और अंत से बचता है।

$trimmed = trim($string); // Trims both ends
$convert = str_replace('', '_', $trimmed);

यह दिलचस्प है, क्योंकि लाइन के प्रारंभ / अंत में रिक्त स्थान को _ द्वारा प्रतिस्थापित नहीं किया जाएगा, बल्कि हटा दिया जाएगा। हालाँकि, मन करता है कि यह (/ r और \ n या टैब के रूप में) स्ट्रिंग के आरंभ / अंत से अन्य वर्णों को भी हटा देगा।
पॉल

1

यह मेरे कोड का हिस्सा है जो मेरी फ़ाइलों के नामकरण के लिए अंडरस्कोर बनाता है:

$file = basename($_FILES['upload']['name']);
$file = str_replace(' ','_',$file);

1

मैंने इस तरह का इस्तेमाल किया

$option = trim($option);
$option = str_replace(' ', '_', $option);

0

आप उपयोग कर सकते हैं str_replace कह कि आपका नाम परिवर्तनशील है$name

$result = str_replace(' ', '_', $name);

दूसरा तरीका रेगेक्स का उपयोग करना है, क्योंकि यह 2-टाइम स्पेस आदि को खत्म करने में मदद करेगा।

  $result=  preg_replace('/\s+/', '_', $name);

0

Strtrस्ट्रिंग के बजाय एकल वर्णों को प्रतिस्थापित करता है, इसलिए यह इस उदाहरण के लिए एक अच्छा समाधान है। माना जाता strtrहै कि इससे अधिक तेज़ है str_replace(लेकिन इस उपयोग के मामले में वे दोनों बहुत तेजी से हैं)।

echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton

कूल, अगर किसी को कई, लम्बी फ़ाइलों (लॉग?) में रिक्त स्थान को "_" में बदलना था, तो यह औसत रूप से तेज हो सकता है? (हालांकि कोई सबूत / संदर्भ नहीं है, यह निष्पादन की गति में रुचि रखने वाले किसी भी व्यक्ति के लिए एक दिलचस्प जवाब हो सकता है)।
पॉल

हे पॉल, मुझे ऐसा लगता है। इसे आज़माएं और इसे बेंचमार्क करें।
थोरेसियस एपोटाइट

0

str_replace- यह स्पष्ट समाधान है। लेकिन कभी-कभी आपको यह जानने की जरूरत है कि वास्तव में रिक्त स्थान क्या हैं। मुझे csv फ़ाइल से रिक्त स्थान की समस्या है।

दो चार थे लेकिन उनमें से एक 0160 (0x0A0) था और दूसरा अदृश्य था (0x0C2)

मेरा अंतिम समाधान:

$str = preg_replace('/\xC2\xA0+/', '', $str);

मुझे एचसीएक्स दर्शक से एमसी (आधी रात के दर्शक - एफ 3 - एफ 9) से अदृश्य प्रतीक मिला


किस बारे में '/\s+/'?
फ्लेमस्टॉर्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.