📄 search.cfc
字号:
<cfset theURL = theURL & "®ion=#urlEncodedFormat(arguments.region)#">
<cfif not listFindNoCase("all,any,phrase", arguments.type)>
<cfthrow message="Invalid type (#arguments.type#) passed. Only all, any, or phrase allowed.">
</cfif>
<cfset theURL = theURL & "&type=#arguments.type#">
<cfif arguments.results lt 1 or arguments.results gt 100>
<cfthrow message="Invalid results (#arguments.results#) passed. Max is 100, min is 1.">
</cfif>
<cfset theURL = theURL & "&results=#arguments.results#">
<cfif arguments.start lt 1 or arguments.start + arguments.results gt 1000>
<cfthrow message="Invalid start (#arguments.start#) passed. Max value of start + results value must be less than 1000, min is 1.">
</cfif>
<cfset theURL = theURL & "&start=#arguments.start#">
<cfif not listFindNoCase("any,html,msword,pdf,ppt,rss,txt,xls", arguments.format)>
<cfthrow message="Invalid format (#arguments.format#) passed. Only any, html, msword, pdf, ppt, rss, txt, xls allowed.">
</cfif>
<cfset theURL = theURL & "&format=#arguments.format#">
<cfif arguments.adult>
<cfset theURL = theURL & "&adult_ok=1">
</cfif>
<cfif arguments.similar>
<cfset theURL = theURL & "&similar_ok=1">
</cfif>
<cfif len(arguments.language)>
<cfset theURL = theURL & "&language=#arguments.language#">
</cfif>
<cfset theURL = theURL & "&country=#arguments.country#">
<cfif len(arguments.site)>
<cfloop index="x" from="1" to="#min(30, listLen(arguments.site))#">
<cfset theURL = theURL & "&site=#listGetAt(arguments.site,x)#">
</cfloop>
</cfif>
<cfif len(arguments.subscription)>
<cfset theURL = theURL & "&subscription=#arguments.subscription#">
</cfif>
<cfif len(arguments.license)>
<cfloop index="x" from="1" to="#min(30, listLen(arguments.license))#">
<cfset theURL = theURL & "&license=#listGetAt(arguments.license,x)#">
</cfloop>
</cfif>
<cfhttp url="#theURL#" result="result" charset="utf-8" />
<cfif len(result.fileContent) and isXml(result.fileContent)>
<cfset xmlResult = xmlParse(result.fileContent)>
<cfif structKeyExists(xmlResult, "error")>
<cfthrow message="Map API Error: #xmlResult.error.message.xmlText#">
</cfif>
<cfset totalResults = xmlResult.resultSet.xmlAttributes.totalResultsAvailable>
<cfloop index="x" from="1" to="#xmlResult.resultSet.xmlAttributes.totalResultsReturned#">
<cfset node = xmlResult.resultSet.xmlChildren[x]>
<cfset title = node.title.xmlText>
<cfset summary = node.summary.xmlText>
<cfset iUrl = node.url.xmlText>
<cfset clickurl = node.clickurl.xmlText>
<cfset mimetype = node.mimetype.xmlText>
<cfset modificationdate = epochTimeToDate(node.modificationdate.xmlText)>
<cfset cacheurl = node.cache.url.xmlText>
<cfset cachesize = node.cache.size.xmlText>
<cfset queryAddRow(q)>
<cfset querySetCell(q, "title", title)>
<cfset querySetCell(q, "summary", summary)>
<cfset querySetCell(q, "url", iUrl)>
<cfset querySetCell(q, "clickurl", clickurl)>
<cfset querySetCell(q, "mimetype", mimetype)>
<cfset querySetCell(q, "modificationdate", modificationdate)>
<cfset querySetCell(q, "totalavailable", totalResults)>
<cfset querySetCell(q, "cacheurl", cacheurl)>
<cfset querySetCell(q, "cachesize", cachesize)>
</cfloop>
</cfif>
<cfreturn q>
</cffunction>
<cffunction name="relatedSuggestion" returnType="array" output="false" access="public"
hint="Retrieves related search term suggestions.">
<cfargument name="query" type="string" required="true" hint="Search terms.">
<cfargument name="results" type="numeric" required="false" default="10" hint="Number of results. Max is 50.">
<cfset var result = "">
<cfset var xmlResult = "">
<cfset var theURL = "http://search.yahooapis.com/WebSearchService/V1/relatedSuggestion?appid=">
<cfset var suggestions = arrayNew(1)>
<cfset var x = "">
<cfset theURL = theURL & getAppID()>
<cfset theURL = theURL & "&query=#urlEncodedFormat(arguments.query)#">
<cfif arguments.results lt 1 or arguments.results gt 50>
<cfthrow message="Invalid results (#arguments.results#) passed. Max is 50, min is 1.">
</cfif>
<cfset theURL = theURL & "&results=#arguments.results#">
<cfhttp url="#theURL#" result="result" charset="utf-8" />
<cfif len(result.fileContent) and isXml(result.fileContent)>
<cfset xmlResult = xmlParse(result.fileContent)>
<cfif structKeyExists(xmlResult, "error")>
<cfthrow message="Related Suggestion API Error: #xmlResult.error.message.xmlText#">
</cfif>
<cfif not structKeyExists(xmlResult.ResultSet, "Result")>
<cfreturn suggestions>
</cfif>
<cfloop index="x" from="1" to="#arrayLen(xmlResult.ResultSet.Result)#">
<cfset arrayAppend(suggestions, xmlResult.ResultSet.Result[x].xmlText)>
</cfloop>
<cfreturn suggestions>
</cfif>
</cffunction>
<cffunction name="spellingSuggestion" returnType="array" output="false" access="public"
hint="Retrieves spelling suggestions.">
<cfargument name="query" type="string" required="true" hint="Word to use.">
<cfset var result = "">
<cfset var xmlResult = "">
<cfset var theURL = "http://search.yahooapis.com/WebSearchService/V1/spellingSuggestion?appid=">
<cfset var suggestions = arrayNew(1)>
<cfset var x = "">
<cfset theURL = theURL & getAppID()>
<cfset theURL = theURL & "&query=#urlEncodedFormat(arguments.query)#">
<cfhttp url="#theURL#" result="result" charset="utf-8" />
<cfif len(result.fileContent) and isXml(result.fileContent)>
<cfset xmlResult = xmlParse(result.fileContent)>
<cfif structKeyExists(xmlResult, "error")>
<cfthrow message="Spelling Suggestion API Error: #xmlResult.error.message.xmlText#">
</cfif>
<cfif not structKeyExists(xmlResult.ResultSet, "Result")>
<cfreturn suggestions>
</cfif>
<cfloop index="x" from="1" to="#arrayLen(xmlResult.ResultSet.Result)#">
<cfset arrayAppend(suggestions, xmlResult.ResultSet.Result[x].xmlText)>
</cfloop>
<cfreturn suggestions>
</cfif>
</cffunction>
</cfcomponent>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -