Selectively removing HTML from Foxpro tables
I was working with some web developers upgrading a VFP data driven website. There were many HTML tags and references in memo fields that needed to be removed when moving to the new site design. I didn't want to remove ALL of the HTML tags, but just some. I modified some code that I found and these little snippets worked out nicely.
lcHTML = MyTable.MyMemoFieldWithHTML lcHTML = RemoveHTMLTag( lcHTML, "<font", [<span class="qs-bold-12-blue">] ) lcHTML = RemoveHTMLTag( lcHTML, "</font", "</span>" ) lcHTML = RemoveHTMLTag( lcHTML, "<strong", "" ) lcHTML = RemoveHTMLTag( lcHTML, "</strong", "" )
*!********************************** *!* Program: RemoveHTMLTag *!* Author: CULLY Technologies, LLC *!* Date: 12/10/12 08:30:30 PM *!* Copyright: *!* Description: *!* Revision Information: FUNCTION RemoveHTMLTag( lcHTML, lcTag, lcReplacement ) lcHTMLSource = lcHTML nTagCount = OCCURS( lcTag, lcHTMLSource ) nNewTagCount = nTagCount DO WHILE nTagCount > 0 nOpenLoc = AT(lcTag, lcHTMLSource ) lcTemp = SUBSTR( lcHTMLSource, nOpenLoc+1 ) nCloseLoc = AT(">", lcTemp ) + nOpenLoc + 1 cTextToRemove = SUBSTR( lcHTMLSource, nOpenLoc, nCloseLoc - nOpenLoc ) lcHTMLSource = STRTRAN( lcHTMLSource, cTextToRemove, lcReplacement ) nNewTagCount = OCCURS( lcTag, lcHTMLSource ) IF nNewTagCount = nTagCount && We're making sure we're still removing tags and that the HTML isn't invalid which would create an endless loop. SET STEP ON EXIT ENDIF nTagCount = nNewTagCount ENDDO RETURN lcHTMLSource
I hope this helps someone out.