我在处理将一个段落的文本拆分成单词/句子以便在多个短信中发送时遇到了困难。每个短信最多只能有160个字符。我希望干净地分割一个段落。
以下是解决方案(感谢Leventix!):
public static function splitStringAtWordsUpToCharacterLimit($string, $characterLimit) {
return explode("\n", wordwrap($string, $characterLimit));
}
这是我使用的函数:
function sms_chunk_split($msg) {
$msg = preg_replace('/[\r\n]+/', ' ', $msg);
$chunks = wordwrap($msg, 160, '\n');
return explode('\n', $chunks);
}
<?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);
}
?>
你为什么要在这里使用正则表达式呢?
你只需要将字符串分割成多个文本消息即可。所以你可以做类似于以下的操作(我记不清确切的语法了,我的PHP有点生疏)length($string)/$charmax
,然后将其分割成一个数组并返回该数组。