2013-03-29 5 views
5

के बाद शब्द को कैपिटल करें, मैं एक php स्ट्रिंग में प्रत्येक शब्द को कैपिटल करने की कोशिश कर रहा हूं लेकिन फ़ंक्शन एक शब्द का पता नहीं लगा रहा है जिसे तुरंत ब्रैकेट द्वारा पीछा किया जा रहा है। मैं इसे कैसे बना सकता हूं ताकि ब्रैकेट के बाद सीधे एक शब्द पूंजीकृत हो?पीएचपी ब्रैकेट

उदाहरण: अम्हारिक् (इथियोपिया) .... अम्हारिक् (इथियोपिया)

उत्तर

16

यह एक known bug जो वहाँ की आवश्यकता है खाली स्थान के हो रहा है (वर्तमान में ucwords(), पीएचपी प्रदर्शित करता है अम्हारिक् (इथियोपिया) का उपयोग कर) खुले-कोष्ठक और पहले अक्षर के बीच।

$var = "amharic (ethiopian)"; 

echo str_replace('(', '(', ucwords(str_replace('(', '(', $var))); 

परिणाम

Amharic (Ethiopian)

See the demo

+0

ड्रोपल में इसका उपयोग करते हुए: चेतावनी: strtr() पैरामीटर 1 स्ट्रिंग होने की अपेक्षा करता है, format_string में दिए गए सरणी() – Francesco

+0

@ फ्रांसेस्को इस प्रश्न को टैग किया गया है [टैग: PHP] – Kermit

0

आप preg_replace (http://php.net/manual/en/function.preg-replace.php) और /[A-Z][a-zA-Z]*/ या इसी तरह की तरह एक नियमित अभिव्यक्ति के साथ इसे हल करने में सक्षम होना चाहिए: यहाँ एक समाधान है।

0

मुझे लगता है कि समस्या यह है कि php अंतरिक्ष के बाद पहली चरित्र फायदा उठाने और क्योंकि ब्रैकेट अंतरिक्ष तो यह शब्द में पहले वर्ण भुनाने किया जाना चाहिए और अन्य पात्रों के रूप में माना जाता है के बाद सिर्फ एक चरित्र है जा रहा है यह है कि folow यह इस दुनिया के पात्रों के रूप में माना जाता है

तो यह आस-पास काम करने के लिए मुझे लगता है कि आप ब्रैकेट और पात्रों के बीच जगह बनाने चाहिए ताकि php एक भी चरित्र के रूप में ब्रैकेट पता लगा सकते हैं और एक एक शब्द के चरित्र :)

शुरू नहीं
7

इसे आज़माएं, मैंने कोशिश की,

$text= "amharic (ethiopian)"; 
echo mb_convert_case($text, MB_CASE_TITLE, "UTF-8"); 

उत्पादन: अम्हारिक् (इथियोपिया)

नोट: ऐसा लगता है कि पीएचपी पर mbstring समारोह सक्षम होने के लिए है की तरह।

0

किसी और के लिए डैश, ब्रैकेट और कोष्ठक सहित अन्य पात्रों के आसपास शीर्षक शीर्षक की आवश्यकता है। आप preg_replace_callback के साथ regex का उपयोग किसी शब्द को कैप्चर करने के लिए कर सकते हैं जो किसी डैश के साथ विभाजित होता है या वर्णमाला में वर्णित वर्ण से शुरू होता है।

/** Capitalize first letter if string is only one word **/ 
    $STR = ucwords(strtolower($STR)); 

/** Correct Title Case for words with non-alphabet charcters ex. Screw-Washer **/ 
    $STR = preg_replace_callback('/([A-Z]*)([^A-Z]+)([A-Z]+)/i', 
     function ($matches) { 
      $return = ucwords(strtolower($matches[1])).$matches[2].ucwords(strtolower($matches[3])); 
      return $return; 
     }, $STR); 
1
ब्रैकेट के बाद कैपिटल में

function ucWordWithBracket($edit){ 
     $new_word = str_replace("(","(",$edit); 
     $temp = ucwords($new_word); 
     $new_word = str_replace("(","(",$temp); 
     return $new_word; 
    } 

ucWordWithBracket (अम्हारिक् (इथियोपिया))

funcation का उत्पादन है "अम्हारिक् (इथियोपिया)" में गुप्त शब्द को समारोह उपयोग ब्रैकेट के साथ नीचे

;