将段落分成160个字符片段用于文本消息传递

时间:2009-11-13 20:42:56

标签: php string

我在使用一段文字并将其分成单词/句子以发送多条短信的逻辑上遇到了麻烦。每条短信最多只能包含160个字符。我想干净地打破一个段落。

这是解决方案(感谢Leventix!):

public static function splitStringAtWordsUpToCharacterLimit($string, $characterLimit) {
    return explode("\n", wordwrap($string, $characterLimit));
}

4 个答案:

答案 0 :(得分:6)

您可以使用wordwrap,然后使用换行符explode

答案 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);
 }
?>