在PHP中有一个名为file_get_contents
的简单函数,如果我想在google.com上检索和显示HTML,我会这样做:
<?php
$html = file_get_contents('http://www.google.com/');
echo $html;
?>
ColdFusion中是否有相同的功能?您可以将外部站点的输出检索到字符串变量中(然后相应地对其进行操作)吗?
答案 0 :(得分:10)
最简单的跨引擎相当于你写的:
<cfhttp url="http://www.google.com/" />
<cfset html = cfhttp.FileContent />
<cfoutput>#html#</cfoutput>
您可以指定自动创建的cfhttp变量的替代方法,如下所示:
<cfhttp url="http://www.google.com/" result="Response" />
<cfset html = Response.FileContent />
<cfoutput>#html#</cfoutput>
这两种方法都适用于所有主要的CFML引擎(Adobe CF,OpenBD,Railo)。
您可以在cfhttp documentation中看到完整的选项集(方法,参数,代理设置等),并查看完整的响应结构,只需在调用后使用<cfdump var=#cfhttp#/>
(或其他结果var命名为。)。
有一个额外的选项可以与Railo一起使用,这更像是你在PHP中所拥有的,就像这样:
<cfset html = FileRead('http://www.google.com/') />
<cfoutput>#html#</cfoutput>
这是因为Railo有资源(虚拟文件系统),所以在任何地方你都可以进行文件操作,你可以使用各种虚拟文件系统,包括HTTP,ZIP,RAM等。
(Adobe也开始添加虚拟文件系统,但我认为到目前为止只支持RAM,所以这在那里不起作用。)
答案 1 :(得分:2)
<cfset destination = "http://www.google.com">
<cfhttp url = #destination# method = "post" result="httpResult">
<cfoutput>#httpResult.fileContent#</cfoutput>
答案 2 :(得分:1)
<cfhttp method="Get"
url="127.0.0.1/blah.html"
name="myvar">
<cfdump var="#myvar#">