fsockopen php 操作失败,求怎样解决fsockopen函数,错误

//获取文件大小function remote_filesize($url_file){ if (!remote_file_exists($url_file)) return false; $headInf = get_headers($url_file,1); return $headInf['Content-Length'];}//判断文件是否存在function remote_file_exists($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; $host = $url_arr['host']; $path = $url_arr['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); //fread replace fgets $first_header = fread($fp, 128); fclose($fp); if (trim($first_header) == "") return false; //check $url_file "Content-Location" if (!preg_match("/200/", $first_header) || preg_match("/Location:/", $first_header)) return false; return true;}echo remote_filesize("http://wlm212.bjphp1.qq1.cc/down/ee.exe");?>

这个是我在网上找的,取远程文件大小的例子。

如果域名正常,文件存在就返回文件大小,

如果域名正常,文件不存在,就返回false。

现在问题出现了,如果域名不正常,就像上面这个地址,域名解析不了,也就是无法访问。这个时候会输出错误信息。

php_network_getaddresses: getaddrinfo failed: 不知道这样的主机。 in D:\PHPnow-1.5.6\htdocs\webadmin\inc\filesize.php on line 15

怎样能把这个错误信息去掉呢,在不修改web服务器配置的情况下,只在代码里面解决。

因为我要用ajax,取文件大小信息。所以不能报错,一报错,javascript获取的返回值,就是错误信息了,这个就导致前台无法运行了。

有会的吗,指点一下小弟。

回复讨论(解决方案)

try

{

$fp = fsockopen($host, $port, $err_no, $err_str,30);

}catch(Exception $e)

{

}

加了个异常处理,还是不管用。

$fp = @fsockopen($host, $port, $err_no, $err_str,30);

屏蔽掉错误信息(这个函数在异常处理之前出生)

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值