2011-05-18 28 views
5

आप स्ट्रिंग के बीच में वर्ण कैसे जोड़ते हैं?PHP - एक स्ट्रिंग के बीच में अक्षर जोड़ना (अंत से शुरू)

मैं 2121231234 जैसे यूएस नंबर को प्रारूपित करने की कोशिश कर रहा हूं जैसे कि 212-123-1234।

मैं पहले से पता नहीं है कि कब तक संख्या की स्ट्रिंग हो जाएगा,
यह १२१२१२३१२३४ हो सकता है, तो यह और भी 0012121231234,
जो मामले में मैं इसे 1212-123-1234 में बदलने के लिए चाहते हो सकता है, और क्रमशः 001212-123-1234।

$phone_number = '2121231234'; 
$phone_number = str_split($phone_number); // [2,1,2,1,2,3,1,2,3,4] 
$phone_number = array_reverse($phone_number); // [4,3,2,1,3,2,1,2,1,2] 

array_splice($phone_number, 4, 0, '-'); // [4,3,2,1,-,3,2,1,2,1,2] 
array_splice($phone_number, 8, 0, '-'); // [4,3,2,1,-,3,2,1,-,2,1,2] 

$phone_number = array_reverse($phone_number); // [2,1,2,-,1,2,3,-,1,2,3,4] 
$phone_number = implode($phone_number); // "212-123-1234" 

कौन सा काम करता है, लेकिन अभी तक भी इस तरह के एक सरल कार्य को पूरा करने में ज्यादा हो रहा है:

अब तक, यह है कि क्या मैं के साथ आ गया है।

मुझे क्या याद आ रही है?

उत्तर

7

regular expressions साथ यह प्रयास करें:

echo preg_replace('/^(.*?)(.{3})(.{4})$/', '$1-$2-$3', $telnum); 
+0

महान प्रयास करें सबसे सुरुचिपूर्ण समाधान। –

0

की तरह तो

$phone_number = substr_replace($phone_number, '-' , strlen($phone_number)-7 , 0); 
$phone_number = substr_replace($phone_number, '-' , strlen($phone_number)-4 , 0); 
2

, यह

$phone_number = "2121231234"; 
$phone_number = substr($phone_number, 0, 3) . '-' . substr($phone_number, 3, 6) . ' - '. 
substr($phone_number, 6, strlen($phone_number));