正如主题所说,我需要一个递归函数,如果它包含的字长度超过(例如)5个字符,则会拆分字符串。
示例:
如果我有字符串“aaaaa aaa aaaa aaaaa”就可以了;
如果我有字符串“aaaaa bbbbbb aa aaaaa”我需要拆分1次(例如,在第一个bbbbb和最后一个b之前添加char#)。结果将是“aaaaa bbbbb#b aa aaaaa”
如果我像以前一样有字符串“aaaaa bbbbbbbbbbbbbbbb aa aaaaa”;注意这次大胆的一个有16个字符,所以这次我需要拆分3次:)
是否已经实现了任何PHP功能或者我需要制作它? 干杯
答案 0 :(得分:3)
使用preg_replace:
echo preg_replace("`(\S{5})(?!\s|$)`", '$1#', "aaaaa bbbbbbbbbbbbbbbb aa aaaaa")
// aaaaa bbbbb#bbbbb#bbbbb#b aa aaaaa
注意我将每组5个字符不替换为空格,后跟5个字符+#的空格。显然你可以用其他任何东西替换#。
答案 1 :(得分:1)
一种方法是使用split() 并使用像这样的正则表达式
[A-ZA-Z] {5}
所以
分裂( '[A-ZA-Z] {5}',$字符串);
编辑:刚注意到该函数已被DEPRECATED所以请改用preg_split
答案 2 :(得分:0)
$result = array();
$source = // assign source here
for($idx = 0; $idx < count($source); $idx += 5) {
$result = substr($source, $idx, 5);
}