Estou tentando fazer um algorítmo que “pule a linha” de uma string a cada X caracteres: por exemplo:
$numero = 3;
$string = "1234567890";
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.
[code]$rest = substr(“1234567890”, 0, -7); // returna “123”
$rest = substr(“1234567890”, 3, -4); // returna “456”
$rest = substr(“1234567890”, 6, -1); // returna “789”
$rest = substr(“1234567890”, 9, 0); // returna “0”[/code]
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
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! =]
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;
}
[code]$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) . “
”;
$comeco = $comeco + 3;
$fim = $fim + 3;
$i = $i + 3;
}
$trunk = $trunk . substr($teste,$comeco+3,$fim+$resto) . “
”; //coloquei isso [/code]
Amigo, na verdade, existe um erro aqui.
Quando colocamos a função substr(‘1234567890’,$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
cara, tenta usar um sub string, fica mais facil