将段落拆分为160个字符的文本消息

Asked
Viewd2653

3

我无法接受一段文本并将其拆分为单词/句子以发送多个文本消息的逻辑。每条短信最多只能包含160个字符。我想整段地弄清楚。

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

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

4 个答案

6

您可以使用自动换行,然后使用通过换行符展开

 public static function splitStringAtWordsUpToCharacterLimit($string, $characterLimit) {
    return explode("\n", wordwrap($string, $characterLimit));
} 
 
  • 我向你的回答鞠躬:)。我确实喜欢这个网站,通过回答这些问题,然后找到人们所遇到的问题的解决方案,这使我成为一名更好的程序员。Leventix很酷!

    Mark TomlinNovember 14, 2009 06:11
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);
 }
?>
 
3

这是我使用的功能

 function sms_chunk_split($msg) {
   $msg = preg_replace('/[\r\n]+/', ' ', $msg);
   $chunks = wordwrap($msg, 160, '\n');
   return explode('\n', $chunks);
}
 

它将长的SMS消息拆分为160个字节的块的数组,并在单词边界处进行拆分。

0

为什么您需要在这里使用正则表达式!?

您所要做的就是将字符串拆分为许多段短信。所以你会做类似(我不记得确切的语法,我的PHP生锈)length($string)/$charmax的事情,然后将子字符串多次放入数组中并返回该数组

  • 我认为他正在努力避免打断单词的中间部分。

    John RoseNovember 13, 2009 21:08