2011-03-25 17 views
10

मुझे नीचे दिए गए चर मूल्य में $widget_text से ब्रैकेट "[" और "]" को हटाने की आवश्यकता है और परिणाम $widget_id में संग्रहीत करें।स्ट्रिंग से विशिष्ट वर्णों को हटाने के तरीके?

$widget_text = '[widget_and-some-text]'; 
$widget_id = ?; 

उपयोग preg_replace, str_replace या कुछ और?

+0

Michiel का जवाब आप पूर्ण कार्य प्राप्त होगा, लेकिन आप स्ट्रिंग पर किसी भी सत्यापन करना चाहते हो? –

+1

@ कोल। एस: सहायक सलाह के लिए धन्यवाद, संस बकवास ;-) –

उत्तर

39

कई विधियां उपलब्ध हैं, और उन्हें कभी-कभी वही कार्य करने के लिए बनाया जा सकता है, जैसे preg_replace/str_replace। लेकिन, शायद आप केवल स्ट्रिंग की शुरुआत या अंत से ब्रैकेट को हटाना चाहते हैं; किस मामले में preg_replace काम करता है। लेकिन, अगर कई ब्रैकेट हो सकते हैं, तो preg_replace भी नौकरी कर सकता है। लेकिन ट्रिम आसान है और अधिक समझ में आता है।

preg_replace() - शुरुआत दूर करता है और अनुगामी कोष्ठक

$widget_id = preg_replace(array('/^\[/','/\]$/'), '',$widget_text);  

str_replace() - इस पाठ में कहीं भी कोष्ठक को हटा

$widget_id = str_replace(array('[',']'), '',$widget_text); 

ट्रिम() - ट्रिम कोष्ठक शुरुआत और अंत से

$widget_id = trim($widget_text,'[]') 

substr() - ट्रिम के रूप में ही करता है() (विजेट पाठ संभालने पाठ के भीतर किसी भी समापन कोष्ठक शामिल नहीं है)

$widget_id = substr($widget_text, 
        $start = strspn($widget_text, '['), 
        strcspn($widget_text, ']') - $start 
      ); 
+3

+1। –

+0

@ स्कॉट बी: एनपी, बस यह पता लगाया गया है कि आप पहले से ही जानते थे _how_ str_replace –

+0

Yep का उपयोग करने के लिए: मुझे वास्तव में इस मामले में ट्रिम विकल्प पसंद हो सकता है। अच्छे कर्नल के रूप में इसका मामूली तरीका भी इंगित करता है। –

6
$widget_id = str_replace('[', '', str_replace(']', '', $widget_text)); 
+5

'$ widget_id = str_replace (सरणी ('[', ']'), '', $ widget_text); 'बेहतर –

+0

@ करलोस: धन्यवाद! उपयोगी स्पष्टीकरण और उपयोग-केस उदाहरणों के लिए –

1

कोष्ठक पहली और आखिरी स्थान पर हमेशा से रहे हैं, तो इस का उपयोग करें:

$widget_id = substr($widget_text, 1, strlen($widget_text)-2); 

मुझे लगता है कि यह एक तेज़ तरीका है ...

+1

सबसे तेज़ तरीका: $ widget_text = 'widget_and-some-text'; : पी –

+0

लेकिन चुटकुले चुटकुले, यह समकक्ष preg_replace (सरणी ('/^\ [/', '/ \] $ /'), '', $ widget_text) से तेज होना चाहिए –

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