这个问题有点奇怪。我有一个可以在任何浏览器中打开的URL。
我可以使用来自本地服务器或任何其他服务器的file_get_contents()函数获取此URL的内容,但是当我在同一台服务器上运行带有file_get_contents()函数的页面时,它会出现404错误。
在此服务器上启用了file_get_contents(),因为它可以读取其他服务器上托管的URL的内容。
让我详细解释一下。
需要从同一服务器上的URL2读取我的Web服务器上的URL1。
URL1可以从任何其他服务器读取,但不能从URL2读取,因为两个URL都在同一台服务器上。
我想它必须对服务器设置做些什么。
谢谢!
答案 0 :(得分:0)
您可能想尝试使用CURL而不是file_get_contents():
function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$x=get_web_page('http://yourserver/the_script.php');
echo $x["content"];