Dividir texto en strings de 25 palabras usando PHP

  • Autor Autor grunst3r
  • Fecha de inicio Fecha de inicio
grunst3r

grunst3r

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Una funcion que divida el texto dependiendo de la cantidad de caracteres.

Tengo un texto de 50 caracteres, y pues, le digo a la funcion dividemelo en strings de 25 palabras, tomando en cuanta los espacios…
esto nos serveria como para hacer un script de forma de poesia …
Aqui los dejo la funcion donde hace la operacion:

PHP:
function cut_sub($text, $len){
$text_len = strlen($text);
if($text_len > $len){
$str_split = str_split($text, $len);
$str_split = str_split($str_split[0]);
$str_split = array_reverse($str_split);
$num = $len - array_search(' ', $str_split);
$string = substr($text, 0, $num);
$new_text = substr($text, $num);
}else{
$string = $text;
$new_text = "";
}
return array('string' => $string, 'new_text' => $new_text);
} 

function cut_text($text, $len){
$str_split = str_split($text);
$data = cut_sub($text, $len);
$res[] = $data['string'];
$new_text = $data['new_text'];
if(!empty($data['new_text'])){
foreach($str_split as $value){
$data = cut_sub($new_text, $len);
$res[] = $data['string'];
$new_text = $data['new_text'];
if(empty($data['new_text'])){
break;
}
}
}
return $res;
}
Y para ver que tan bueno es el resultado veremos este ejemplo.
PHP:
$text = 'Mientras me hablabas y yo te miraba, se detuvo el tiempo en  medio instante: el amor me llamaba y yo le obedecía. Mientras me  susurrabas y yo te amaba, se alzaron los sentimientos, mandó tu voz, el  cielo se hizo visible en tus ojos, y yo pronuncié el querer en tus  labios.';
 $array = cut_text($text, 38);
 print_r($array);
el resultado saldria así.
PHP:
Array
(
[0] => Mientras me hablabas y yo te miraba,
[1] => se detuvo el tiempo en medio
[2] => instante: el amor me llamaba y yo le
[3] => obedecía. Mientras me susurrabas y yo
[4] => te amaba, se alzaron los
[5] => sentimientos, mandó tu voz, el cielo
[6] => se hizo visible en tus ojos, y yo
[7] => pronuncié el querer en tus labios.
)
Espero que les guste el script, puede que lo mejoren o lo usen de varias maneras ... 😉
 
esta bueno tu script lo usare en una web de poesias que tengo:shakehands:
 
te complicas mucho jeje
PHP:
$text = "Split string in words"; 
$fromWord = 0;
$toWord = 25;
$wordsArray = explode(" ", $text);
for($i=$fromWord;$i>$toWord;$i++) {
      print_r($wordsArray[$i]);
}
 
Atrás
Arriba