Mi cliente está buscando una forma de enviar un mensaje de texto al script de Twilio PHP que programé y luego hacer que se lo retransmita al personal en el campo. Esa es la parte fácil, simplemente verifique si el número entrante está autorizado, extraiga los datos del personal de MySQL y distribúyalo.Romper cadenas largas con PHP para SMS salientes
Aquí está la parte difícil: las personas que usan esto pueden tener un largo aliento y sus teléfonos les permiten ingresar más de 160 caracteres. Asumiendo que Twilio puede recibir> 160 caracteres (sé que no puede enviar> 160), necesito dividir este mensaje largo (cadena) en trozos que caen bajo 160 caracteres.
Aquí está la secuencia de comandos que se me ocurrió, funciona bien, pero me gustaría que termine en una palabra completa, en lugar de simplemente el siguiente carácter una vez que se haya dividido. Una historia divertida, cuando te olvidas de ingresar la longitud en la que dividir la cadena, ¡recibes aproximadamente 171 mensajes de texto de un personaje! : P
<?php
$string = "Ulysses, Ulysses - Soaring through all the galaxies. In search of Earth, flying in to the night. Ulysses, Ulysses - Fighting evil and tyranny, with all his power, and with all of his might. Ulysses - no-one else can do the things you do. Ulysses - like a bolt of thunder from the blue. Ulysses - always fighting all the evil forces bringing peace and justice to all.";
$arr = str_split($string, 155); //Factoring in the message count
$num = count($arr); //See how many chunks there are
$i = 1; //Set interval to 1
foreach ($arr as $value) {
if ($num > 1) {
echo "($i/$num) $value<br/>"; //(x/x) Message...
$i++;
} else {
echo $value; //Message...
}
}
?>
Muchas gracias
CORRECCIÓN Lo sentimos, gran descuido de mi parte - He publicado la secuencia de comandos de desarrollo para jugar con las cuerdas en lugar de la secuencia de comandos en vivo que envía el SMS real después de "la incidente." Necesito poder iterar sobre los fragmentos para enviar cada uno como su propio SMS después de que se haya dividido, como lo anterior hará ... acaba de terminar con una palabra completa. El SMS se enviaría en el bucle foreach.
+1 para la historia lado divertido ... maldición - espero que tengas un teléfono que permite "Eliminar todo" y no solo eliminación individual –
De hecho, pero me pasé como $ 3.40 en cambio con Twilio debido a eso LOL – NightMICU
¿No tienen una forma de probar tu código gratis antes de que "entre en funcionamiento" un descuido tal vez? –