2017-10-16 77 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()编辑了答案。 –