我开始处理一个带有字符串的小脚本,计算字符数,然后根据字符数将每个字符串分开/拆分并一次发送/发送110个字符。< / p>
用于什么的正确逻辑/ PHP:
1) Count the number of characters in the string
2) Preface each message with (1/3) (2/3) (3/3), etc...
3) And only send 110 characters at a time.
我知道我可能不得不使用strlen来计算字符数,并使用某种类型的循环来循环,但我不太清楚如何去处理它。
谢谢!
答案 0 :(得分:1)
如果您不关心打破字符串的位置,可以使用str_split。
否则,如果你关心这个(并且想要,例如,只在空白处拆分),你可以做类似的事情:
// $str is the string you want to chop up.
$split = preg_split('/(.{0,110})\s/',
$str,
0,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
使用此数组,您可以简单地执行:
$count = count($split);
foreach ($split as $key => $message) {
$part = sprintf("(%d/%d) %s", $key+1, $count, $message);
// $part is now one of your messages;
// do what you wish with it here.
}
答案 1 :(得分:0)
使用str_split()并迭代生成的数组。
答案 2 :(得分:0)
从我的头顶,应该按原样工作,但不必。逻辑还可以。
foreach ($messages as $msg) {
$len = strlen($msg);
if ($len > 110) {
$parts = ceil($len / 100);
for ($i = 1; $i <= $parts; $i++) {
$part = $i . '/' . $parts . ' ' . substr($msg, 0, 110);
$msg = substr($msg, 109);
your_sending_func($part);
}
} else {
your_sending_func($msg);
}
}