Jump to content
Sign in to follow this  
fsales_123

comentario php

Recommended Posts

boa tarde como faço para limitar caracteres nesse codigo

<?php echo $ln->descricao; ?>...

?? ja fiz isso

<?php echo truncate(strip_tags($ln->descricao), 150); ?>......

fica assim se for mais que 150 caracteres ele aparece "..." se for menor qe 150 aparece os comentarios

Edited by fsales_123

Share this post


Link to post
Share on other sites

na onde posso usar? onde posso colocar ela?

 

Fiz essa função aqui, verifica ai se funciona, pq aqui n tenho apache...

function truncate($texto){
	
	// Aqui verifica a quantidade de caracteres 
	$qtd = strlen($texto);
	
	if($qtd > 150):
		$texto = substr($texto, 0,147);
		$texto = $texto."...";
		return $texto;
	else:
	
		return $texto;
		
	endif;
	
}

Share this post


Link to post
Share on other sites

Seu truncate() ja corta o texto?

 

Então e so conta os caracteres strlen()!

if(strlen($string = truncate(strip_tags($ln->descricao), 150)) > 150){
  echo "tenho mais de 150 caracters";
}else
    echo "tenho menos de 150 caracters";
 

Share this post


Link to post
Share on other sites

vou testar desde de ja mto obrigado


deu isso amigo

 

 

Fatal error: Cannot redeclare truncate() (previously declared in config/conexao.php:25) in index.php on line260

Share this post


Link to post
Share on other sites

vou testar desde de ja mto obrigado

deu isso amigo

 

 

Fatal error: Cannot redeclare truncate() (previously declared in config/conexao.php:25) in index.php on line260

 

Você declarou a função "truncate" duas vezes, remova uma das declarações ou comente a mesma, mantendo somente uma função com este nome.

Share this post


Link to post
Share on other sites

essa funcão qe estou usando e n tem duas truncate

 

 

function truncate($texto){
if(strlen($texto) > 150) {
    $texto = substr($texto, 0, 147)."...";
return $texto;
}
return $texto;

}

Share this post


Link to post
Share on other sites

Pq que tem 2 returns?

$texto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sed quam lacus. Phasellus ultrices placerat est in commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent pharetra odio vitae velit eleifend, sollicitudin hendrerit quam vulputate. Aliquam scelerisque nec leo sed tincidunt. Fusce vel nulla vitae mi ultrices vulputate non at metus. In finibus sollicitudin lorem, ac interdum orci. Curabitur eget elit et diam mattis auctor. Nam sed accumsan ipsum. Proin eget nisi metus. Duis non faucibus est. Nunc venenatis, ipsum sed interdum lobortis, lacus ante tincidunt metus, sed dictum metus ante quis velit. Mauris laoreet quam massa.";

echo substr($texto,0,140);

Isso não funciona?

Share this post


Link to post
Share on other sites

Pq que tem 2 returns?

$texto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sed quam lacus. Phasellus ultrices placerat est in commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent pharetra odio vitae velit eleifend, sollicitudin hendrerit quam vulputate. Aliquam scelerisque nec leo sed tincidunt. Fusce vel nulla vitae mi ultrices vulputate non at metus. In finibus sollicitudin lorem, ac interdum orci. Curabitur eget elit et diam mattis auctor. Nam sed accumsan ipsum. Proin eget nisi metus. Duis non faucibus est. Nunc venenatis, ipsum sed interdum lobortis, lacus ante tincidunt metus, sed dictum metus ante quis velit. Mauris laoreet quam massa.";

echo substr($texto,0,140);

Isso não funciona?

 

A função possui 2 return pois ele quer retornar uma string inteira caso ela seja menor que 150 caracteres, ou caso for maior que 150 caracteres, posição 0 até 147 + '...' para indicar a continuação do texto. portando, na função postada, se for maior que 150 ele entra na condição e retorna 147+'...', caso contrário cai no segundo return, lembrando que qualquer return dentro de uma função funciona como um break dentro de um while ou for.

Share this post


Link to post
Share on other sites

Não está montada errada, eu testei antes de postar, você deveria fazer o mesmo antes de criticar.

 

Cara, não estou criticando. Funcionar não quer dizer que está certa.

 

Você só deve ter um return em uma função, até onde sei. A condição de retorno dela deve ser definida antes.

Ao meu ver, esta é a versão, não vamos usar mais o termo "errado", e sim "melhor escrita".

<?php
	function truncate($texto)
	{
		// * Se a contagem for maior que 150, corta
		if(strlen($texto) > 150){
			$texto = substr($texto, 0, 147)."...";
		}
		// * Senão, mantém integral.
		else{
			$texto = $texto;
		}
		return $texto;
	}
?>

Desculpe se causei algum mal-estar. Estamos aqui para aprender, não? :closedeyes:

Share this post


Link to post
Share on other sites

 

Cara, não estou criticando. Funcionar não quer dizer que está certa.

 

Você só deve ter um return em uma função, até onde sei. A condição de retorno dela deve ser definida antes.

Ao meu ver, esta é a versão, não vamos usar mais o termo "errado", e sim "melhor escrita".

<?php
	function truncate($texto)
	{
		// * Se a contagem for maior que 150, corta
		if(strlen($texto) > 150){
			$texto = substr($texto, 0, 147)."...";
		}
		// * Senão, mantém integral.
		else{
			$texto = $texto;
		}
		return $texto;
	}
?>

Desculpe se causei algum mal-estar. Estamos aqui para aprender, não? :closedeyes:

 

Eu posso estar declarando mais de um return dentro de uma função, aplicando condições para retornar antes do termino da mesma ou não, conforme feito na função que sugeri, desta forma eu torno o código mais limpo e objetivo, mais fácil de entender. O modo sugerido por você também está correto, a diferença é que não estou alocando o valor em uma variável e sim retornando o mesmo diretamente. A performance e resultado é o mesmo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.