我想获取网址的响应,请使用以下代码说明http://www.google.com:
$fp = @fopen("http://www.google.com/", "r");
但它总是返回false。 我也试过这个:
@file_get_contents("http://www.google.com/");
没有希望。 有人可以帮我吗?
答案 0 :(得分:3)
您可以将file_get_contents()
用于HTTP请求,但您必须确保正确设置正确的流上下文。
查看此代码(摘自PHP手册here):
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.google.com/', false, $context);
这应该可行,即使在PHP中执行HTTP请求的更好方法是肯定使用cURL扩展,就像在此线程中建议的许多其他人一样。
答案 1 :(得分:1)
你可以使用cURL来检索这样的HTML
function get_html($url){
/**
* Initialize the cURL session
*/
$ch = curl_init();
/**
* Set the URL of the page or file to download.
*/
curl_setopt($ch, CURLOPT_URL,$url);
/**
* Ask cURL to return the contents in a variable
* instead of simply echoing them to the browser.
*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
/**
* Execute the cURL session
*/
$contents = curl_exec ($ch);
/**
* Close cURL session
*/
curl_close ($ch);
return $contents;
}
答案 2 :(得分:0)
仅当设置了配置标志allow_url_fopen
时,才能使用标准文件功能打开URL。这是一个系统级设置,因此您可能需要编辑php.ini来启用它。
答案 3 :(得分:0)
使用curl http://www.php.net/manual/en/curl.examples-basic.php
要好得多它也可能是你的软件防火墙阻止php建立http连接。
答案 4 :(得分:0)
我编写了一个与PHP模块独立的小型HTTP客户端库。它捆绑在videodb.net php包中,包括缓存机制,HTTP 1.0 / 1.1,代理支持等。如果感兴趣,请检查核心/ httpclient.php。