經常需要判斷文件是否可以訪問,可以通過http狀態碼判別,200為正常訪問,404為找不到該頁面,代碼如下:
- // 設置url
- $url = 'http://m.survivalescaperooms.com';
- function get_http_status_code($url) {
- if(emptyempty($url)) return false;
- $url = parse_url($url);
- $host = isset($url['host']) ? $url['host'] : '';
- $port = isset($url['port']) ? $url['port'] : '80';
- $path = isset($url['path']) ? $url['path'] : '';
- $query = isset($url['query']) ? $url['query'] : '';
- $request = "HEAD $path?$query HTTP/1.1rn"
- ."Host: $hostrn"
- ."Connection: closern"
- ."rn";
- $address = gethostbyname($host);
- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- socket_connect($socket, $address, $port);
- socket_write($socket, $request, strlen($request));
- $response = split(' ', socket_read($socket, 1024));
- socket_close($socket);
- return trim($response[1]);
- }
- echo get_http_status_code($url);
另一種獲取http狀態碼的辦法
使用curl需要在php.ini中設置啟用才行 >< Windows的服務器中,打開php.ini,找到:
extension=php_curl.dll
去掉前面的注釋既可.
PHP實例代碼如下:
- $curl = curl_init();
- $url=’http://m.survivalescaperooms.com’;
- curl_setopt($curl, CURLOPT_URL, $url); //設置URL
- curl_setopt($curl, CURLOPT_HEADER, 1); //獲取Header
- curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我們只是需要Head
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //數據存到成字符串吧,別給我直接輸出到屏幕了
- $data = curl_exec($curl); //開始執行啦~
- echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT碼哦~
- curl_close($curl); //用完記得關掉他
新聞熱點
疑難解答