如何从外部网站将HTML检索到ColdFusion中的变量?

时间:2010-07-12 16:56:58

标签: coldfusion

在PHP中有一个名为file_get_contents的简单函数,如果我想在google.com上检索和显示HTML,我会这样做:

<?php
$html = file_get_contents('http://www.google.com/');
echo $html;
?>

ColdFusion中是否有相同的功能?您可以将外部站点的输出检索到字符串变量中(然后相应地对其进行操作)吗?

3 个答案:

答案 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 CFOpenBDRailo)。

您可以在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#">