Cortar un texto para mandarlo por SMS sin cortar palabras
Vamos a preparar un script que nos trocea un texto en multiples SMS sin cortar palabras y añadiendo al final un contador de mensajes.
function ArrayTextosSMS($texto){
$frases=array();
$palabras=explode(" ",$texto);
$frase="";
$numpalabras=count($palabras);
foreach($palabras as $palabra){
$fraseadd=$frase." ".$palabra;
if (strlen($fraseadd)>150){
array_push($frases,trim($frase));
$frase=$palabra;
}else{
$frase=$frase." ".$palabra;
}
}
if ($frase!=""){
array_push($frases,trim($frase));
}
$numfrases=count($frases);
//añadimos un contador
if ($numfrases>1){
for($i=0;$i<$numfrases;$i++){
$j=$i+1;
$frases[$i]=$frases[$i]." ($j/$numfrases)";
}
}
return $frases;
}
el ejemplo es:
$texto="Este es un texto muy largo que queremos mandar mediante SMS, para ello hemos creado un script que nos lo trocea en partes de 150 caracteres y ademas le añade un contador de numero de mensajes. Ahora hay que encontrar un proveedor que nos permita mandar los sms, a ser posible de manera gratuita, pero todavia no he dado con ello. Si algun dia lo encuentro, lo compartiré en este mismo hilo"; print_r(ArrayTextosSMS($texto));die;
Que nos da como resultado:
Array
(
[0] => Este es un texto muy largo que queremos mandar mediante SMS, para ello hemos creado un script que nos lo trocea en partes de 150 caracteres y ademas (1/3)
[1] => le añade un contador de numero de mensajes. Ahora hay que encontrar un proveedor que nos permita mandar los sms, a ser posible de manera gratuita, (2/3)
[2] => pero todavía no he dado con ello. Si algún día lo encuentro, lo compartiré en este mismo hilo (3/3)
)
El código esta disponible tambien en JAVA