2010-07-12 27 views
2

在PHP中,有一个名为file_get_contents简单的功能,如果我想和检索,比如说显示HTML,google.com,我只是这样做:如何从外部网站将HTML检索到ColdFusion中的变量?

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

是否有一个相当于这个ColdFusion的?你可以检索外部网站的输出到一个字符串变量(然后相应地操纵它)吗?

回答

9

交叉引擎相当于简单的你写的是:

<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#/>通话(或任何结果变量被命名)之后。


有与Railo的作品,这是更直接和您在PHP的本事,像这样的额外选项:

<cfset html = FileRead('http://www.google.com/') /> 
<cfoutput>#html#</cfoutput> 

这工作,因为Railo具有资源(虚拟文件系统),所以你可以在任何地方进行文件操作,你可以使用各种虚拟文件系统,包括HTTP,ZIP,RAM和其他文件系统。

(的Adobe已经开始添加虚拟文件系统还可以,但我认为到目前为止只支持RAM,所以这并不在那里工作。)

+0

谢谢,这很好! – SoaperGEM 2010-07-12 18:04:32

1
<cfhttp method="Get" 
    url="127.0.0.1/blah.html" 
    name="myvar"> 
<cfdump var="#myvar#"> 
+1

这是行不通的。当从CSV->查询对象转换URL时,'name'属性用于查询变量的名称。 – 2010-07-12 17:36:33

2
<cfset destination = "http://www.google.com"> 
<cfhttp url = #destination# method = "post" result="httpResult"> 
<cfoutput>#httpResult.fileContent#</cfoutput>