Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Ronan

[Resolvido] Fitrar tags HTML

Recommended Posts

Pessoal

 

Tenho um codigo que retorna os primeiros 100 caracteres de uma noticia e coloca ela com o destaque.

 

O problema é que as vezes, no corpo destas noticias, ha alguma TAG HTML que acaba em aberto ou quebrada... Acaba replicando para o resto do site / codigo.

 

Deixando mais claro:

 

Tenho a noticia cadastrada no banco

 

<p>Lorem ipsum dolor sit amet, consectetur <b>adipiscing elit</b>. Donec id libero quam. Fusce scelerisque diam eu urna malesuada ullamcorper. Praesent pulvinar bibendum diam, ut luctus libero pellentesque vitae.</p> 

<p>Integer ornare ligula sed leo aliquam quis egestas arcu pharetra. Sed ac leo dolor. Duis quis venenatis ipsum. Duis sodales elementum mauris dictum lobortis. Quisque mollis semper turpis, sed ornare dolor congue imperdiet.</p>

ela retornaria por exemplo:

 

<p>Lorem ipsum dolor sit amet, consectetur <b>adipiscing

ou

 

<p>Lorem ipsum dolor sit amet, consectetur <b

deixando a tag ou aberta ou quebrada, zuando o resto do site... Tem como filtrar essas tags, sei la, um "mega replace"?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize uma destas funções, ela ira eliminar do code todo os codes html, so deixara o texto, sendo assim seus problemas acabaram:

 

1 exemplo

 

Function RemoveHTML( strText )
	Dim RegEx

	Set RegEx = New RegExp

	RegEx.Pattern = "<[^>]*>"
	RegEx.Global = True

	RemoveHTML = RegEx.Replace(strText, "")
End Function

2 exemplo

 

Function RemoveHTML( strText ) 
    Dim nPos1
    Dim nPos2
    
    nPos1 = InStr(strText, "<") 
    Do While nPos1 > 0 
        nPos2 = InStr(nPos1 + 1, strText, ">") 
        If nPos2 > 0 Then 
            strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1) 
        Else 
            Exit Do 
        End If 
        nPos1 = InStr(strText, "<") 
    Loop 
    
    RemoveHTML = strText 
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

sempre usei esta tb

 

dá uma oilhada no lab. de script que existe uma funçao para remover caracters HTML

 

e verifique esta funcao

 

exemplo:

<%
dim a

a = a & "<HTML>" & vbCrLf
a = a & "<HEAD>" & vbCrLf
a = a & "<TITLE>Xanburzum</TITLE>" & vbCrLf
a = a & "</HEAD>" & vbCrLf
a = a & "<BODY>" & vbCrLf
a = a & "forum de programaçao, ASPower!!!" & vbCrLf
a = a & "<A HREF=""./xanburzum.asp"">link</A>" & vbCrLf
a = a & "</BODY>" & vbCrLf
a = a & "</HTML>" & vbCrLf

response.write StripHTML(a)

 ' returns:
 ' "Xanburzum forum de programaçao, ASPower!!!link"
%>

 

code:

 

<%
Private Function StripHTML(byVal string)
	Dim lngStart, lngEnd, strHTML
	string = Replace( string, vbTab, "" )
	string = Replace( string, vbCrLf, "" )
	string = Trim( string )
	do
		lngStart = Instr(string, "<")
		lngEnd   = InStr(string, ">")
		strHTML  = Mid( string, lngStart, _
			   lngEnd - lngStart + 1)
		string   = Trim(  Replace( string, strHTML, "" )  )
	loop until Not Instr(string, "<") _
		AND Not Instr(string, ">")
	If Instr( string, "<" ) Then _
		string = StripHTML( Trim( string ) )
	StripHTML = Trim( string )
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

sabe a soluçao mais pratica?

 

criar uma tabela chamada "resumo"

 

resolvi esse memso problema assim, ao inves de usar funcoes e funcoes

 

gravo os 200 1ºs caracteres sem formatacao

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.