我在使用一段文字并将其分成单词/句子以发送多条短信的逻辑上遇到了麻烦。每条短信最多只能包含160个字符。我想干净地打破一个段落。
这是解决方案(感谢Leventix!):
public static function splitStringAtWordsUpToCharacterLimit($string, $characterLimit) {
return explode("\n", wordwrap($string, $characterLimit));
}
答案 0 :(得分:6)
答案 1 :(得分:3)
这是我使用的功能,
function sms_chunk_split($msg) {
$msg = preg_replace('/[\r\n]+/', ' ', $msg);
$chunks = wordwrap($msg, 160, '\n');
return explode('\n', $chunks);
}
它将一条长SMS消息拆分为一个160字节的数组,在字边界处分裂。
答案 2 :(得分:0)
为什么你需要在这里使用正则表达式??
您需要做的就是将字符串拆分为多条短信。所以你会做类似的事情(我记不清确切的语法,我的PHP生锈了)length($string)/$charmax
然后只是多次将数据包子串入数组并返回该数组
答案 3 :(得分:0)
<?php
$string = str_repeat('Welcome to StackOverFlow, Heres Your Example Code!', 6);
print_r(str_split($string, 160));
# You could also Alias the function.
function textMsgSplit($string, $splitLen = 160) {
return str_split($string, $splitLen);
}
?>