file_get_contents()的等效函数?

时间:2011-01-11 09:32:55

标签: php file-get-contents

我想从html页面解析一些信息。 目前我解决了这样的问题:

header("Content-type: text/plain");    
$this->pageSource = file_get_contents ($this->page);
header("Content-type: text/html");

$this->page是该网站的网址。 这在XAMPP上工作正常,但是当我在我的网络服务器上传我的脚本时,收到以下错误消息:

  

警告:file_get_contents()[function.file-get-contents]:http://在服务器配置中禁用包装器allow_url_fopen = 0

显然我不允许在我的网络服务器上执行该功能。

那么是否有一个解决我问题的等效函数?

5 个答案:

答案 0 :(得分:20)

实际上,功能file_get_contents未被禁用,
allow_url_fopen已停用

您可以将其替换为curl

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->page);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$this->pageSource = curl_exec($ch);
curl_close($ch);

但是,如果您的服务器阻止了传出流量,curl也没有帮助

答案 1 :(得分:4)

使用curl()

答案 2 :(得分:2)

cURL是通常的标准解决方案。

答案 3 :(得分:0)

使用curl,为什么需要将标题更改为纯文本以检索数据?如果要检索数据,则无需这样做。

答案 4 :(得分:0)

如果你有卷曲,使用它对它来说很棒。


            $urlx = 'http://yoururl';

            $data="from=$from&to=$to&body=".urlencode($body)."&url=$url";   
//set post parameters
            $process = curl_init($urlx); 
//init curl connection
            curl_setopt($process, CURLOPT_HEADER, 0); 

            curl_setopt($process, CURLOPT_POSTFIELDS, $data); 

            curl_setopt($process, CURLOPT_POST, 1); 

            curl_setopt($process, CURLOPT_RETURNTRANSFER,1);

            curl_setopt($process,CURLOPT_CONNECTTIMEOUT,1);

            $resp = curl_exec($process); 
//your content
            curl_close($process);