Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2008, 05:22
Avatar de JoniJnm
JoniJnm
 
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Poner un espacio cada x caracteres

Hola, quiero poner un espacio cada 20 caracteres es una variable que contiene un texto, entonces he hecho un código, pero seguro que es más fácil, es este:

Código PHP:
<?php
$text 
"abcdefghijklmnñopqrstuvwxyz"//Pueden probar que funciona
$var2 strlen($text); //cantidad de letras que tiene el texto
$var 0;
$var5 0;
while (
$var $var2) {
//mientras que var sea menor que la cantidad de letras que tiene el texto
//var irá aumentando en el siguiente while
  
while (substr($text,$var,1) != " " && $var $var2) { 
    
$var++; //mientras que no haya un espacio en el texto, súma uno a var
  
}
  
$var3 $var $var3//por si ha pasado por aquí ya, tiene que restar var3
  
if ($var3 20) { //si no hay un espacio en 20 caracteres
    
$var4 $var3 20
    
//divide los caracteres contados entre 20 para saber cuántos espacio hay que poner
    
$var4 explode(".",$var4); //divide el numero entre parte entera y decimal
    
$var4 $var4[0];//coge la parte entera
    
while ($var4 0) { 
    
//mientras que las veces que hay que poner el espacio sea 0 (cada vez que se añade un espacio se resta uno, al final del while)
      
$var5++; //suma uno cada vez que pongas un espacio
      
$var3 $var5 20//multiplica por 20
      
$text substr($text,0,$var3)." ".substr($text,$var3); //ponle el espacio
      
$var4--;
    }        
  }
}    
echo 
"<br>final: ".$text;
?>
Ejemplo

Código PHP:
<?php
$text 
"abcdefghijklmnñopqrstuvwxyz"
$var2 strlen($text); //var2 = 26
$var 0;
$var5 0;
while (
$var $var2) {
  while (
substr($text,$var,1) != " " && $var $var2) { 
    
$var++; 
  } 
//var = 26, cantidad de caracteres sin un espacio
  
$var3 $var $var3//var3 = 26, ya que es la 1º vez que pasa por aquí
  
if ($var3 20) { //como var3 > 20, sigue
    
$var4 $var3 20//var4 = 1.15
    
$var4 explode(".",$var4); //por un lado 1 y por otro 15
    
$var4 $var4[0];//var4 = 1
    
while ($var4 0) { 
      
$var5++; //var5 = 1
      
$var3 $var5 20//var3 = 20
      
$text substr($text,0,$var3)." ".substr($text,$var3); 
      
//text = abcdefghijklmnñopqrs tuvwxyz
      
$var4--; //resta uno para que var sea menor que cero y no haga más este while
    
}        
  }
}    
echo 
"<br>final: ".$text;
?>
Alguna manera simplificada para poner el espacio cada x caracteres?

Saludos!