2017-10-16 25 views
0

我有一個小問題我想在後每9個數字加上一個特殊字符。 我這裏是如何在php中添加特殊字符php

$new = "111222333444555666777888999"; 

現在我想造成這樣的事情

$add_charcter = ($new, "//any method to add special character"); 

和結果shouldBe這樣喜歡這個

111222333-444555666-777888999 
+0

和你的問題是? – madalinivascu

+1

$ string = substr_replace($ new,「 - 」,$ position = 9,$ length = 0); – weletonne

+1

歡迎使用堆棧溢出。你已經嘗試過這麼做了嗎?請回顧[預計需要多少研究工作?](https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users)。堆棧溢出不是一種編碼服務。您需要研究您的問題,並嘗試在發佈之前親自編寫代碼。如果遇到某些特定問題,請返回幷包含[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve)以及您嘗試的內容摘要,以便我們提供幫助。 – cramopy

回答

3

最短一個與preg_replace功能:

$new = "111222333444555666777888999"; 
$result = preg_replace('/.{9}(?!$)/', '$0-', $new); 

print_r($result); 

輸出:

111222333-444555666-777888999 

正則表達式模式說明:

  • .{9} - 匹配9個字符

  • (?!$) - 負前向斷言,確保匹配9個字符的序列是不是最後一個,以避免在字符串的末尾添加特殊字符

+0

它的工作非常感謝你 – Joe

+0

@Joe,不客氣 – RomanPerekhrest

3

可以使用str_splitimplode

  • str_split - 將字符串轉換爲一個數組
  • implode - 加入數組元素與串

實施例:

$str = "111111111222222222333333333"; 
echo implode("-", str_split($str, 9)); // 111111111-222222222-333333333 
2

chunk_split()可用於將字符串分割成較小的塊。

$new = "111222333444555666777888999"; 
$result = chunk_split($new, 9, '-'); 
echo rtrim($result,'-'); 
+0

是的,但是這會在字符串的末尾添加「 - 」。 – Gordon

+0

對不起,我沒有注意到它,我使用rtrim()編輯了答案。 –