Je suis en train de développer un script qui prend un message, le scinde tous les 100 caractères, et envoie chaque partie.preg_split - New Line
Cependant, ma chaîne d'origine contient des lignes "\ n", ce qui cause un problème avec mon preg_split, provoquant sa division prématurée (par exemple, avant 100 caractères).
Voici ce que je travaille actuellement avec:
$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>";
}
Maintenant, avec cela, je l'ai remarqué 3 choses:
1) La première partie du message ("Message de John Smith") n'est même pas inclus dans le tableau.
2) Les nouvelles lignes (\ n) semblent couper la chaîne au début.
3) Curieusement, avec la dernière ligne du message ("Répondre" etc ...) il coupe le dernier mot ("msg.") Et l'ajoute dans une nouvelle ligne, peu importe ce que le phrase peut lire.
Toute aide sur ce serait génial!
Merci pour la réponse, cependant, j'ai besoin de chaque "partie" pour être des parties séparées d'un tableau, de sorte que je puisse envoyer chaque chaîne de caractères "100" séparément. En utilisant wordwrap, c'est toujours une seule chaîne. Comment puis-je le séparer en plusieurs chaînes? – Dodinas