McHack
asked on
Replacing content from a cfhttp page grab
I'm trying to search and replace content from a cfhttp page grab. So far it's working fine except that there are dynamicly generated links that I need to append code to the end of. The start of the URL to be edited remains constant on all links however the end of the link changes dynamicly. For example the URL would look something like:
<A HREF=http://www.mywebsitecontent.com/dynamic/stories/E/ELECTION_RDP>
The URL will remain static except for the last part E/ELECTION_RDP>
What I need to do is append some code on to the end of the URL so that it would look something like:
<A HREF=http://www.mywebsitecontent.com/dynamic/stories/E/ELECTION_RDP?SITE=MYSITE&SECTION=HOME>
The code that I am appending to the end of the URL will remain constant, I just need a way for the searh and replace function to find the end of the URL and append my code on the end.
Here is an example of what I have been doing to format the output from the cfhttp:
<cfhttp method="get" url="www.mywebsitecontent.com/TOPHEADLINE_THREE_ONLY-rich.html" resolveurl="yes">
</cfhttp>
<cfset newText = reReplaceNoCase(cfhttp.fil econtent, "<SPAN CLASS='byttl'><br>[^<]+</s pan>", "", "ALL")>
<cfset newText2 = reReplaceNoCase(newText, "<SPAN[^>]+>", "", "ALL")>
<cfset newText3 = reReplaceNoCase(newText2, "<IMAGE[^>]+ >", "", "ALL")>
<cfset newText4 = reReplaceNoCase(newText3, "<IMG[^>]+>", "", "ALL")>
<cfset newText5 = reReplaceNoCase(newText4, "<TABLE[^>]+>", "", "ALL")>
<cfset newText6 = reReplaceNoCase(newText5, "<TR[^>]+>", "", "ALL")>
<cfset newText7 = reReplaceNoCase(newText6, "<TD[^>]+>", "", "ALL")>
<cfset newText8 = reReplaceNoCase(newText7, "<FONT[^>]+>", "", "ALL")>
<cfset newText9 = reReplaceNoCase(newText8, "<!--[^>]+>", "", "ALL")>
<cfset output = #ReplaceList(newText9, "<TR>,</TR>,<TD>,</TD>,</T ABLE>,&nbs p;,</SPAN> " , ",,,,,,")#>
<cfoutput>#output#</cfoutp ut>
I think it would be possible to replace the part of the URL I need to change using a reReplaceNoCase if I there was some kind of wild card for the code that is dynamic.
<A HREF=http://www.mywebsitecontent.com/dynamic/stories/E/ELECTION_RDP>
The URL will remain static except for the last part E/ELECTION_RDP>
What I need to do is append some code on to the end of the URL so that it would look something like:
<A HREF=http://www.mywebsitecontent.com/dynamic/stories/E/ELECTION_RDP?SITE=MYSITE&SECTION=HOME>
The code that I am appending to the end of the URL will remain constant, I just need a way for the searh and replace function to find the end of the URL and append my code on the end.
Here is an example of what I have been doing to format the output from the cfhttp:
<cfhttp method="get" url="www.mywebsitecontent.com/TOPHEADLINE_THREE_ONLY-rich.html" resolveurl="yes">
</cfhttp>
<cfset newText = reReplaceNoCase(cfhttp.fil
<cfset newText2 = reReplaceNoCase(newText, "<SPAN[^>]+>", "", "ALL")>
<cfset newText3 = reReplaceNoCase(newText2, "<IMAGE[^>]+ >", "", "ALL")>
<cfset newText4 = reReplaceNoCase(newText3, "<IMG[^>]+>", "", "ALL")>
<cfset newText5 = reReplaceNoCase(newText4, "<TABLE[^>]+>", "", "ALL")>
<cfset newText6 = reReplaceNoCase(newText5, "<TR[^>]+>", "", "ALL")>
<cfset newText7 = reReplaceNoCase(newText6, "<TD[^>]+>", "", "ALL")>
<cfset newText8 = reReplaceNoCase(newText7, "<FONT[^>]+>", "", "ALL")>
<cfset newText9 = reReplaceNoCase(newText8, "<!--[^>]+>", "", "ALL")>
<cfset output = #ReplaceList(newText9, "<TR>,</TR>,<TD>,</TD>,</T
<cfoutput>#output#</cfoutp
I think it would be possible to replace the part of the URL I need to change using a reReplaceNoCase if I there was some kind of wild card for the code that is dynamic.
Hi,
I would make a very little change to danrosenthal's code, to also include tags that quote the attributes with single quotes:
<CFSET my_string = REREPLACENOCASE(my_string,
"(<A[^>]+)(HREF=[""']?)+([ ^ ""'\>]*)(.*)","\1\2\3&Your AdditionHe re=1\4","A LL")>
Chris
I would make a very little change to danrosenthal's code, to also include tags that quote the attributes with single quotes:
<CFSET my_string = REREPLACENOCASE(my_string,
"(<A[^>]+)(HREF=[""']?)+([
Chris
ASKER
Well I just can't get it to work. I've been working with it for quit a while and one time I did get just the first URL to work but I'm not sure what I did I just don't have a very good understanding of regular expressions (does any one know of a good online reference for regular expressions?) Anyway it seems to me if there was a way to search for the ending ">" in the URLs and replace them with "SITE=MYSITE&SECTION=HOME> " all should be good. Any ideas?
Thanks
Thanks
ASKER
Correction, that last line in my message should have read:
"?SITE=MYSITE&SECTION=HOME >"
"?SITE=MYSITE&SECTION=HOME
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hey Crhis , I've been running the last idea you had (replacing ">") for several days and it's been working great! Thanks a lot!
<CFSET my_string = "<A HREF=http://www.mywebsitecontent.com/dynamic/stories/E/ELECTION_RDP>">
<CFSET my_string = REREPLACENOCASE(my_string,
"(<A[^>]+)(HREF=""?)+([^ ""\>]*)(.*)","\1\2\3&YourA
<CFOUTPUT>
#htmlcodeformat(my_string)
</CFOUTPUT>