请教 file_get_contents 应用程序池回收 file_get_contents 获取远程网页(即本站)时第一次可以取的页面内容,以后就取不到了,但取别人网站的可以取的(http://www.163.com)后来回收一下 应用程序池 又可以取的一次后又不行了请问这是什么原因,是iis还是php 的哪个地方没有配置好?以前都没有遇到过 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 两次请求的间隔如果非常短,http服务器会自动辨别第2次请求为恶意访问,这样可以防止DOS、大流量访问攻击。lz看看是否为此原因。 楼主print_r($http_response_header)试试看,看看返回的服务器返回的header里面有没什么信息 function exists_remote_file($url_file) { //检测输入 $url_file = trim($url_file); if (empty($url_file)) { return false; } $url_arr = parse_url($url_file); if (!is_array($url_arr) || empty($url_arr)){ return false; } //获取请求数据 if(!isset($url_arr['host'])) return false; $host = $url_arr['host']; $path = $url_arr['path']; if(isset($url_arr['query'])) $path.="?".$url_arr['query']; $port = isset($url_arr['port']) ? $url_arr['port'] : "80"; //连接服务器 $fp = fsockopen($host, $port, $err_no, $err_str, 30); if (!$fp){ return false; } //构造请求协议 $request_str = "GET ".$path." HTTP/1.1\r\n"; $request_str .= "Host: ".$host."\r\n"; $request_str .= "Connection: Close\r\n\r\n"; //发送请求 fwrite($fp, $request_str); $first_header = fgets($fp, 102400); fclose($fp); //测试输出$first_header 的值 print_r($first_header); //判断文件是否存在 if (trim($first_header) == ""){ return false; } if (!preg_match("/200/", $first_header)){ return false; } return true; }用以上检测:当回收应用池以后显示的是:HTTP/1.1 200 OK 后来就显示:HTTP/1.1 302 Moved Temporarily 第一次说明连接上,第二次应该是连不上吧,但是回收一下又可以了?哎,以前都没遇到过这种问题,最近帮朋友搞了个网站,用他自己的服务器,不知道是服务器哪儿没配好? 不好意思,搞定了打开php.ini 文件 开启 include_path 配置 就行了这好像与浏览模式有关:直接访问与file_get_contents不是同一种方式谢谢这么多朋友关心 我的网站想做成两个首页,但是不知道怎样记录用户的选择! php中文显示乱码 pear 安装 ,来者有分! MySQL数据库中有uniqueidentifier数据类型吗? PHP字符串截取问题 关键字:PHP、mysql、中文、乱码 文件改名(rename) LINUX下安装问题? 请问哪有PHP电子教程下载? 如何读取硬盘中cookie文件夹的所有的COOKIE文件? php 获取拼音首字母的函数,有点小问题。指点迷津。 有谁能帮我配IIS7+PHP5的环境
两次请求的间隔如果非常短,http服务器会自动辨别第2次请求为恶意访问,这样可以防止DOS、大流量访问攻击。
lz看看是否为此原因。
print_r($http_response_header)
试试看,看看返回的服务器返回的header里面有没什么信息
{
//检测输入
$url_file = trim($url_file);
if (empty($url_file)) { return false; }
$url_arr = parse_url($url_file);
if (!is_array($url_arr) || empty($url_arr)){ return false; } //获取请求数据
if(!isset($url_arr['host'])) return false;
$host = $url_arr['host'];
$path = $url_arr['path'];
if(isset($url_arr['query'])) $path.="?".$url_arr['query'];
$port = isset($url_arr['port']) ? $url_arr['port'] : "80";
//连接服务器
$fp = fsockopen($host, $port, $err_no, $err_str, 30);
if (!$fp){ return false; }
//构造请求协议
$request_str = "GET ".$path." HTTP/1.1\r\n";
$request_str .= "Host: ".$host."\r\n";
$request_str .= "Connection: Close\r\n\r\n"; //发送请求
fwrite($fp, $request_str);
$first_header = fgets($fp, 102400);
fclose($fp); //测试输出$first_header 的值
print_r($first_header); //判断文件是否存在
if (trim($first_header) == ""){ return false; }
if (!preg_match("/200/", $first_header)){
return false;
}
return true;
}用以上检测:当回收应用池以后显示的是:HTTP/1.1 200 OK
后来就显示:HTTP/1.1 302 Moved Temporarily 第一次说明连接上,第二次应该是连不上吧,但是回收一下又可以了?哎,以前都没遇到过这种问题,最近帮朋友搞了个网站,用他自己的服务器,不知道是服务器哪儿没配好?