我想从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
显然我不允许在我的网络服务器上执行该功能。
那么是否有一个解决我问题的等效函数?
答案 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);