将段落拆分为160个字符的部分以进行短信发送

3

我在处理将一个段落的文本拆分成单词/句子以便在多个短信中发送时遇到了困难。每个短信最多只能有160个字符。我希望干净地分割一个段落。

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

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

6
您可以使用wordwrap,然后按换行符explode
public static function splitStringAtWordsUpToCharacterLimit($string, $characterLimit) {
    return explode("\n", wordwrap($string, $characterLimit));
} 

我向你的回答致敬 :). 我真的很喜欢这个网站,通过回答这些问题,然后找到人们解决问题的方法,它让我成为了一个更好的程序员。非常棒的Leventix! - Mark Tomlin

3

这是我使用的函数:

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

它将长短信消息分割成160字节的数组块,在单词边界处进行拆分。

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

0

你为什么要在这里使用正则表达式呢?

你只需要将字符串分割成多个文本消息即可。所以你可以做类似于以下的操作(我记不清确切的语法了,我的PHP有点生疏)length($string)/$charmax,然后将其分割成一个数组并返回该数组。


他正在尝试避免在单词中间断开,我想。 - John Rose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接