求怎样解决fsockopen函数,异常

WBOY
풀어 주다: 2016-06-13 11:26:51
원래의
889명이 탐색했습니다.

求怎样解决fsockopen函数,错误

<?<br />//获取文件大小<br />function remote_filesize($url_file){<br />    if (!remote_file_exists($url_file)) return false;<br />    $headInf = get_headers($url_file,1);<br />    return $headInf['Content-Length'];<br />}<br />//判断文件是否存在<br />function remote_file_exists($url_file){ <br />    $url_file = trim($url_file);<br />    if (empty($url_file)) return false;<br />    $url_arr = parse_url($url_file);<br />    if (!is_array($url_arr) || empty($url_arr)) return false;<br />    $host = $url_arr['host'];<br />    $path = $url_arr['path'] ."?".@$url_arr['query'];<br />    $port = isset($url_arr['port']) ?$url_arr['port'] : "80";<br />    $fp = fsockopen($host, $port, $err_no, $err_str,30);<br />    if (!$fp) return false;<br />    $request_str = "GET ".$path." HTTP/1.1\r\n";<br />    $request_str .= "Host:".$host."\r\n";<br />    $request_str .= "Connection:Close\r\n\r\n";<br />    fwrite($fp,$request_str);<br />    //fread replace fgets<br />    $first_header = fread($fp, 128);<br />    fclose($fp);<br />    if (trim($first_header) == "") return false;<br />    //check $url_file "Content-Location"<br />    if (!preg_match("/200/", $first_header) || preg_match("/Location:/", $first_header)) return false;<br />    return true;<br />}<br />echo remote_filesize("http://wlm212.bjphp1.qq1.cc/down/ee.exe");<br />?><br />
로그인 후 복사


这个是我在网上找的,取远程文件大小的例子。
如果域名正常,文件存在就返回文件大小,
如果域名正常,文件不存在,就返回false。

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

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

怎样能把这个错误信息去掉呢,在不修改web服务器配置的情况下,只在代码里面解决。
因为我要用ajax,取文件大小信息。所以不能报错,一报错,javascript获取的返回值,就是错误信息了,这个就导致前台无法运行了。

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿