我目前正在開發一個腳本,需要一個消息,將其分解除了每100個字符左右,並將各部分。使preg_split - 新線
然而,我的原始字符串中有「\ n」個線路,並且這引起問題,我的使preg_split,使它分裂過早地(例如,前100個字符)。
這裏的我目前的工作是什麼:現在
$sMessage = "Msg from John Smith \n".
"SUBJ: Hello! \n".
"This is the bulk of the message and can be well over 200 or 300 characters long. \n".
"To reply, type R 131, then ur msg.";
$split = preg_split('/(.{0,100})\s/',
$sMessage,
0,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
array_shift($split);
$count = count($split);
foreach ($split as $key => $message) {
$part = sprintf("(%d/%d) %s", $key+1, $count, $message);
echo $part;
echo "<br>";
}
,這一點,我已經注意到了三兩件事:
1)消息(「消息來自約翰史密斯」的第一部分)甚至不包含在數組中。
2)新線(\ n)的似乎早些的字符串。 3)奇怪的是,用消息的最後一行(「回覆」等等),它切斷了最後一個單詞(「msg。」),並將其添加到一個新行中,不管是什麼句子可能讀取。
任何幫助,這將是偉大的!
感謝您的回覆,但是,我需要每個「部分」都是數組的單獨部分,以便我可以分別發送每個「100」字符串。使用wordwrap,它仍然是一個字符串。我怎樣才能把它分成幾個字符串? – Dodinas 2009-08-30 19:07:47