[RES][Cortar string a cada X caracteres] Como inserir um <br> num string a cada X caraceteres?

7 respostas
T

Estou tentando fazer um algorítmo que “pule a linha” de uma string a cada X caracteres: por exemplo:

$numero = 3;
$string = "[telefone removido]";

echo CortaString($string,$numero);

quero que nesse echo, apareça:

123
456
789
0

Como ficaria a function CortaString ?

Tentei de diversos modos, com substring, mas nada dá certo.

7 Respostas

D
$rest = substr("[telefone removido]", 0, -7);  // returna "123"

$rest = substr("[telefone removido]", 3, -4);  // returna "456"

$rest = substr("[telefone removido]", 6, -1);  // returna "789"

$rest = substr("[telefone removido]", 9, 0);  // returna "0"
perceba que somei sempre 3 nos ultimos 2 campos, alinhe esse conhecimento em um FOR que seja incrementado em 3 e faça essa rotina
M

.

E

o método split() ele separa a string no caracter passado!

String teste = “Teste Teste”;
teste.split(" ");

saida:
Teste
Teste

espero que ajude. att!

OPS, ESKECE! OUTRA LINGUAGEM! =]

T

Em php tem algo semelhante a split, mas não serve no meu caso. Não posso pular de linha em cada espaço branco.

douglaskd

a função que eu testei antes de postar aqui faz exatamente o que voce me recomendou, mas estou com problemas em fazer ela parar.

$teste = "abcdefghijklmnopqrstuvwyxz";
$trunk = "";   
$comeco = 0;
$fim = 3;
    
$i=0;
    
while($i<=$count){
$trunk = $trunk . substr($teste,$comeco,$fim) . "<br>";
        
$comeco = $comeco + 3;
$fim = $fim + 3;
        
$i = $i + 3;
}
D
$teste = "abcdefghijklmnopqrstuvwyxz";  
$trunk = "";     
$comeco = 0;  
$fim = 3;  
      
$i=0;  


$count = strlen($teste) / 3; //coloquei isso
$resto = strlen($teste) % 3; //coloquei isso
      
while($i<=$count){  
$trunk = $trunk . substr($teste,$comeco,$fim) . "<br>";  
          
$comeco = $comeco + 3;  
$fim = $fim + 3;  
          
$i = $i + 3;  
} 

$trunk = $trunk . substr($teste,$comeco+3,$fim+$resto) . "<br>"; //coloquei isso
T

Amigo, na verdade, existe um erro aqui.

Quando colocamos a função substr(‘[telefone removido]’,$comeco,$numero);

a variavel $comeco, significa que voce quer pegar a partir dessa posicao.
a variavel $numero, não significa que você quer “parar” nessa posição, o terceiro parâmetro é o numero de caracteres que voce deseja pegar a partir do caractere $comeco.

a função ficou assim:

<?
    $string = "abcdefghijklmnopqrstuvxzw";
    $numero = 3;
    $trunk = "";
    
    $comeco = 0;    
    
    $size = strlen($string); // size = 25
    
    $repeticao = intval($size / $numero); // repeticao = 8
    
    for($i=0;$i<$repeticao+1;$i++){
        $trunk = $trunk . substr($string,$comeco,$numero) . "<br>";
        
        $comeco = $comeco + $numero;
    }  
?>

Falows

M

cara, tenta usar um sub string, fica mais facil

Criado 9 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 7
Participantes 5