con php, sin singuna funcion propia de php.
<?php
function len($str)
{
$k = 0;
$a = $str[$k];
while (!empty($str[$k]))
{
$k++;
}
return (int)$k;
}
function quita_($str)
{
$l = len($str) - 1;
$a = 0;
while ($str[$l] == ' ')
{
$l--;
$a++;
}
$newstr = "";
for ($j = 0; $j <= $l; $j++)
{
$newstr .= $str[$j];
}
return $newstr;
}
function _quita($str)
{
$k = 0;
while ($str[$k] == ' ')
{
$k++;
}
$newstr = "";
for ($j = $k; $j <= len($str) - 1; $j++)
{
$newstr .= $str[$j];
}
return $newstr;
}
function quitaespacios($str)
{
return (quita(quita($str)));
}
function strsub($str, $l)
{
$start = "";
$end = "";
$l--;
for ($i = 0; $i <= $l; $i++)
{
$start .= $str[$i];
}
for($j = $l + 1; $j <= len($str) - 1; $j++)
{
$end .= $str[$j];
}
return array($start, $end);
}
function parte($str, $l)
{
$g0 = false;
$matriz = array(0); // [0] => 0;
$str = quitaespacios($str);
if ($l >= len($str))
{
$matriz[0] = 1;
$matriz[] = $str;
} else {
while ($l < len($str))
{
$char = $l;
while ($str[$char] != " ")
{
if ($char == 0)
{
$g0 = true;
}
if ($g0) $char++;
else $char--;
}
$g0 = false;
$m = strsub($str, $char);
$str = quitaespacios($m[1]);
$matriz[0]++;
$matriz[] = quitaespacios($m[0]);
}
$matriz[0]++;
$matriz[] = $str;
}
return $matriz;
}
?>
usar así:
parte($cadena, $longitud);
retorna una matriz con este formato:
[0] => Número de divisiones
[1] => división 1
[n]=> División enésima
si encuentra una palabra de más larga que $longitud, partirá la cadena al final de ésta
perdon por las 100 lineas