quarta-feira, 22 de setembro de 2010

Forçar quebra de linha em php


Olá amigos como tenho percebido ai tem muita gente que tem dificuldade quando por algum motivo precisa forçar a quebra de linha.
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
<?php
$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";

$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

Related Posts with Thumbnails