Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SlyX

simples com SUBSTR

Recommended Posts

echo substr($variavel, 0, 250).'...';soh q neste variavel tem tipo assim$variavel = <font face="verdana" size="1" color="asd">Texto aqui e bla bla bla...</font><b>Texto aqui tambem</b>e por ai vai..eu queria que ele ignorasse estas tas HTML <font> etc..queria q ele so "lesse" oq é realmente texto :D tem como?alguem me ajuda? :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

jeito tem antes usar a funcao substr()... você tem usar alguma funcao para reitar a tag htm... vou ver se tenho algo nas minha funcoes assim q achar posto a funcao para retirar tag!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]<?

function removeTag($seutexto){

$iniciofoto=strpos($seutexto, "<");

$stringfoto = substr($seutexto, $iniciofoto);

$fimfoto=strpos($stringfoto, ">");

$stringfoto = substr($stringfoto, 0, $fimfoto+1);

$stringfoto= str_replace($stringfoto, "", $seutexto);

 

$verificamais=strpos($stringfoto, "<");

if ($verificamais){

$stringfoto=removeTag($stringfoto);

}

return($stringfoto);

}

$seutexto="<font face='verdana' size='2' color='#999999'>batatinha tem essa foto: <IMG SRC='teste.jpg'>, mas nao quer que ela apareca na tela, ela tem mais fotos <IMG SRC='batatinha2.jpg' border=0> e quer que todas sejam eliminadas na exibição</font>";

print "Texto com a funcao - ".removeTag($seutexto)."<p>";

print "Texto sem a funcao - ".$seutexto;

?>

[/tr]

 

Ai esta a funcao para retira tag html

Compartilhar este post


Link para o post
Compartilhar em outros sites

tome cuidado com a funcao substr ele pode no final do texto corta uma palavra no meio!!!crei uma funcao q espara o texto po espcao ou seja contando palavras!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]<?

function removeTag($seutexto){

$iniciofoto=strpos($seutexto, "<");

$stringfoto = substr($seutexto, $iniciofoto);

$fimfoto=strpos($stringfoto, ">");

$stringfoto = substr($stringfoto, 0, $fimfoto+1);

$stringfoto= str_replace($stringfoto, "", $seutexto);

 

$verificamais=strpos($stringfoto, "<");

if ($verificamais){

$stringfoto=removeTag($stringfoto);

}

return($stringfoto);

}

$seutexto="<font face='verdana' size='2' color='#999999'>batatinha tem essa foto: <IMG SRC='teste.jpg'>, mas nao quer que ela apareca na tela, ela tem mais fotos <IMG SRC='batatinha2.jpg' border=0> e quer que todas sejam eliminadas na exibição</font>";

print "Texto com a funcao - ".removeTag($seutexto)."<p>";

print "Texto sem a funcao - ".$seutexto;

?>

[/tr]

 

Ai esta a funcao para retira tag html

caralo vo tentar este..

bem louco o codigo ehhe

vlw ae :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo nao funciona este ele remove as tags..

mas oq eu preciso é assim:

 

que ele exiba tipo 300 caracters mas nestes caracters 'é para exibir com as tags', mas as tags nao devem ser CONTADAS?

entende?

 

se eu boto tipo

 

PHP [/tr][tr]

$variavel = '<font face="verdade"> TEXTO DE TESTE </font>';

echo substr($variavel, 0, 5).'.';

[/tr]

 

neste caso caso ele ira imprimir: <font , oq ira f**** meu codigo asuhas

eu queria que ele imprimisse: TEXTO , mas este texto com o <font> saca?

eheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo pensei em um logica rapida mas nao to conseguindo fazer..

pensei assim, ele pega na tag $variavel e envez de contar oq tem fora, ele conta os chars q tem DENTRO da tag, ai quando eu der o substr eu faço algo tipo:

PHP [/tr][tr]

$chars = $chartag + 300;

echo substr($variavel, 0, $chars);

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu nao quero retirar as tags..eu quero contar quantos chars tem dentro das tagsexemplo:<font size=2>Olá</font><font size=2> = 13 chars</font> = 7 charstotal = 20 charssaca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora você complicou um pouco vou pensar em algo qualquer se eu consiguir eu posto isso para você... to meio meio corrido pra mim.... mas se você conseguir antes posta o codigo ai beleza!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]$text = "<font face='verdana' size='2' color='#999999'>batatinha tem essa foto: <IMG SRC='teste.jpg'>, mas nao quer que ela apareca na tela, ela tem mais fotos <IMG SRC='batatinha2.jpg' border=0> e quer que todas sejam eliminadas na exibição</font>";

$numChars = 50;

for ($num=0;$chars<$numChars;$num++) {

if ($text[$num]=="<") $t++;

else if ($text[$num]==">") $t=0;

else if ($t==0) {

$chars++;

}

$newText .= $text[$num];

}

echo $newText;

[/tr]

Em $numChars você coloca o tanto de caracters que você quer. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]$text = "<font face='verdana' size='2' color='#999999'>batatinha tem essa foto: <IMG SRC='teste.jpg'>, mas nao quer que ela apareca na tela, ela tem mais fotos <IMG SRC='batatinha2.jpg' border=0> e quer que todas sejam eliminadas na exibição</font>";

$numChars = 50;

for ($num=0;$chars<$numChars;$num++) {

if ($text[$num]=="<") $t++;

else if ($text[$num]==">") $t=0;

else if ($t==0) {

$chars++;

}

$newText .= $text[$num];

}

echo $newText;

[/tr]

Em $numChars você coloca o tanto de caracters que você quer. ;)

vo testar aqui

axo q este vai dar certo

vlw :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]function cortaTexto($string,$numChars){

for ($num=0; $chars<$numChars; $num++) {

if ($string[$num]=="<") $tag++;

else if ($string[$num]==">") $tag=0;

else if ($tag==0) {

$chars++;

}

$newString .= $string[$num];

}

return $newString;

}

$texto = "<font face='verdana' size='1'>Jogadores do São Paulo festejam gol na vitória que manteve a equipe na luta pelo título e pôs o Botafogo na zona de descenso; veja as fotos<font>";

print cortaTexto($texto,'10');

[/tr]

 

 

Esta com certeza vai para o meu banco de funcoes... valew intel+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma melhorada nesta funcao por favor realizem teste para ver se esta ok!!!

 

NOVA VERSAO

PHP [/tr][tr]

<?

function cortaTexto($string,$corte){

$palavras = explode(" ",$string);

$totalPalavras = count($palavras);

$incrementa = "";

for($i=0; $i<$corte; $i++) {

if(substr($palavras[$i],0,1)=="<"){

$iniTag = strpos($string,"<");

$fimTag = strpos($string,">")+1;

$tag = substr($string,$iniTag,$fimTag);

$tagEsp = count(explode(" ",$tag));

$corte+=$tagEsp;

}

$incrementa .= $palavras[$i]." ";

}

return trim($incrementa)."...";

}

$texto = "<font face='verdana' size='1'> Jogadores do São Paulo festejam gol na vitória que manteve a equipe na luta pelo título e pôs o Botafogo na zona de descenso; veja as fotos <font>";

print cortaTexto($texto,'2');

?>

[/tr]

 

 

ANTIGA VERSAO

PHP [/tr][tr]

<?

function cortaTexto($string,$numChars){

for ($num=0; $chars<$numChars; $num++) {

if ($string[$num]=="<") $tag++;

else if ($string[$num]==">") $tag=0;

else if ($tag==0) {

$chars++;

}

$newString .= $string[$num];

}

return $newString;

}

$texto = "<font face='verdana' size='1'> Jogadores do São Paulo festejam gol na vitória que manteve a equipe na luta pelo título e pôs o Botafogo na zona de descenso; veja as fotos <font>";

print cortaTexto($texto,'20');

?>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

andre

 

PHP [/tr][tr]<?

function cortaTexto($string,$corte){

$palavras = explode(" ",$string);

$totalPalavras = count($palavras);

$incrementa = "";

for($i=0; $i<$corte; $i++) {

if(substr($palavras[$i],0,1)=="<"){

$iniTag = strpos($string,"<");

$fimTag = strpos($string,">")+1;

$tag = substr($string,$iniTag,$fimTag);

$tagEsp = count(explode(" ",$tag));

$corte+=$tagEsp;

}

$incrementa .= $palavras[$i]." ";

}

return trim($incrementa)."...";

}

$texto = "<font face='verdana' size='1'> Jogadores do <b>São Paulo</b> festejam gol na vitória que manteve a equipe na luta pelo título e pôs o Botafogo na zona de descenso; veja as fotos <font>";

print cortaTexto($texto,'5');

?>

[/tr]

 

igual a

PHP [/tr][tr]<?

function cortaTexto($string,$corte){

$palavras = explode(" ",$string);

$totalPalavras = count($palavras);

$incrementa = "";

for($i=0; $i<$corte; $i++) {

if(substr($palavras[$i],0,1)=="<"){

$iniTag = strpos($string,"<");

$fimTag = strpos($string,">")+1;

$tag = substr($string,$iniTag,$fimTag);

$tagEsp = count(explode(" ",$tag));

$corte+=$tagEsp;

}

$incrementa .= $palavras[$i]." ";

}

return trim($incrementa)."...";

}

$texto = "<font face='verdana' size='1'> Jogadores do São Paulo festejam gol na vitória que manteve a equipe na luta pelo título e pôs o Botafogo na zona de descenso; veja as fotos <font>";

print cortaTexto($texto,'5');

?>

[/tr]

 

 

apenas mudei o Bold no SAO PAULO e ele deveria imprimir igual ne? :)

tem algo meio erradinho eheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

verdade esta funcao esta precisando de up!!! vou da uma olhadinha e ver se consigo fazer alguma alteracao... estao funcao q você esta desenvolvendo é muito interessante!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Versao 0.3

 

PHP [/tr][tr]

<?

function iniTag($palavra){

$contaPal = strlen($palavra);

for($i=0; $i<$contaPal; $i++){

if($palavra[$i]=="<"){

$achou = "1";

$i = $contaPal;

}else{

$achou = "0";

}

 

}

return $achou;

}

function fimTag($palavra){

$contaPal = strlen($palavra);

for($i=0; $i<$contaPal; $i++){

if($palavra[$i]==">"){

$achou = "1";

$i = $contaPal;

}else{

$achou = "0";

}

 

}

return $achou;

}

 

function cortaTexto($string,$corte){

$palavra = explode(" ",$string);

$totalPalavras = count($palavra);

$incrementa = "";

for($i=0; $i<$corte; $i++) {

$iniTag = iniTag($palavra[$i]);

if($iniTag=="1"){

$palavraTag = $i+1;

$abreTag = $i;

while($palavraTag<$totalPalavras){

$fimTag = fimTag($palavra[$palavraTag]);

if($fimTag=="1"){

$fechaTag = $palavraTag;

$palavraTag=$totalPalavras;

}else{

$palavraTag++;

}

}

for($ac=$abreTag; $ac<$fechaTag+1; $ac++){

$tag .= $palavra[$ac]." ";

}

$tag = trim($tag);

$tagEsp = count(explode(" ",trim($tag)))-1;

$corte = $corte+$tagEsp;

}

$incrementa .= $palavra[$i]." ";

}

return trim($incrementa)."...";

}

$texto = "<font face='verdana' size='1'>1 2 3 4 5 6<font> 7 8 9 10";

print cortaTexto($texto,'100');

?>

[/tr]

 

 

Esta versao ainda esta bugada pq, as tag(<img>) tem q estar desta maneira <img>12213<fonte> ou seja sem espacos entre os texto!!! se ficar assim <img> 123 <fonte> ela da pau!!!

 

 

Se alguem estiver afim de fazer uma funcao para limpar espacos das tag para melhorar esta funcao fique avontade!!!

 

 

Falow intel+ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo substr($variavel, 0, 250).'...';

 

soh q neste variavel tem tipo assim

$variavel = <font face="verdana" size="1" color="asd">Texto aqui e bla bla bla...</font><b>Texto aqui tambem</b>

 

e por ai vai..

eu queria que ele ignorasse estas tas HTML <font> etc..

queria q ele so "lesse" oq é realmente texto :D

tem como?

alguem me ajuda? :D

Afinal você quer oq?

Li o tópico e o foco da questão parece q não é o msm do principio.

 

você quer que ele pegue:

PHP [/tr][tr]$variavel = <font face="verdana" size="1" color="asd">Texto aqui e bla bla bla...</font><b>Texto aqui tambem</b>[/tr]

 

e retorne:

Texto aqui e bla bla bla... Texto aqui tambem.

Desta msm forma?!?!

 

Flwwww...

Compartilhar este post


Link para o post
Compartilhar em outros sites

so ha um problema... voce teria que ignorar as tags posteriores ao fim do texto de tamanho que voce quer... p.ex.

 

texto = <font face="verdana" size="1" color="asd">Texto aqui e bla bla bla...</font><b>Texto aqui tambem</b>

 

se voce for pegar 15 caracteres (ignorando as tags), seu texto ficaria assim

texto = "<font face="verdana" size="1" color="asd">Texto aqui e bl</font><b></b>"

 

ou seja, voce tiraria o texto, mas as tags continuariam, podendo causar problemas...

 

ah, é so para esquentar a duvida... http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.