Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save trycf/3c9a931e0f1b6b284fcacebd9f1f6470 to your computer and use it in GitHub Desktop.

Select an option

Save trycf/3c9a931e0f1b6b284fcacebd9f1f6470 to your computer and use it in GitHub Desktop.
TryCF Gist
<cffunction name="extractMetaContent" access="private" returntype="string">
<cfargument name="emailBody" type="string" required="true">
<cfargument name="metaName" type="string" required="true">
<!--- Try double quotes first - handle variable spacing and closing tag variations --->
<cfset var pattern = '(?i)<meta\s+name="?' & arguments.metaName & '"?\s+content="([^"]*)"[^>]*>'>
<cfset var result = ReFindNoCase(pattern, arguments.emailBody, 1, true)>
<!--- If not found, try single quotes --->
<cfif ArrayLen(result.pos) lt 2>
<cfset pattern = "(?i)<meta\s+name=""?" & arguments.metaName & """?\s+content='([^']*)'[^>]*>">
<cfset result = ReFindNoCase(pattern, arguments.emailBody, 1, true)>
</cfif>
<cfif ArrayLen(result.pos) gt 1>
<cfset var content = Mid(arguments.emailBody, result.pos[2], result.len[2])>
<!--- Clean up any remaining encoding --->
<cfset content = Replace(content, "=3D", "=", "All")>
<cfreturn content>
<cfelse>
<cfreturn "">
</cfif>
</cffunction>
<cfset email = "
<meta name=""public"" content=""doubleContent"">
<meta name='public' content='singleContent'>
<meta name=""other"" content=""ignoreThis"">">
<cfset test = extractMetaContent(emailbody=email,metaName="other")>
<cfdump var="#test#">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment