Bom não é nenhum bicho de SETE cabeças podemos fazer isso de diversas formas essa que estou compartilhando com vocês é a que no momento mais me agradou pois ela não só limita o número de caracteres em uma linha e além disso ela verifica se a string contem mais de 4 "@@@" juntos caso exista ela divide o numero de caracteres permitidos por 2 porque isso? pelo simples fato do "arroba" ocupar mais espaço do que os outros caracteres veja o exemplo abaixo.
@@
abcd
$texto = "Entrou um cara chato no meu blog ou no meu site pra zoar o idiota coloco uma fraze assim Vou ultrapassar os limitessssssssssssssssssssssssssssssssssssssssssssssssss da área de post SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSssSS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ mas tambem existem casos em que em que a palavra é muito grande para o espaço fornecido"; <?php $str = 40; // numero de caracteres permitidos em uma linha $i=0; function AntQuebraDeLinha($texto,$str){ $palavras = explode(" ",$texto); for($i=0;$i<count($palavras);$i++){ $Texto = strlen($palavras[$i])>$str ? $palavras[$i] = QuebraLinha($palavras[$i],$str) : $palavras[$i]; $Retorno .= "$Texto "; } return $Retorno." "; } function QuebraLinha($texto,$str) { $i=0; $inicio=0; if(strpbrk($texto, "@@@@")){ for($i==0; $i<strlen($texto)/$str; $i++){ if(strlen($texto)>$str) { $Texto .= substr($texto, $inicio, $str/2.5)."<br>"; $inicio = $inicio + $str/2.5; } } }else{ for($i==0; $i<strlen($texto)/$str; $i++){ if(strlen($texto)>$str) { $Texto .= substr($texto, $inicio, $str); if(strlen($texto)/$str-$i> 1){ $Texto .= '<br />'; } $inicio = $inicio + $str; } } } return strtolower($Texto); } ?> <div style="border:#F00 solid; width:250;"> <?php echo AntQuebraDeLinha($texto,$str); ?> </div> <br /> <div style="border:#F00 solid; width:250;"> <?php echo $texto; ?> </div>
Nenhum comentário:
Postar um comentário