我們要處理的是判斷一個遠端伺服器檔案是否是存在,而不是自己本同伺服器目錄了,如果判斷遠端伺服器的檔案上否存在我們需要使用到curl_init,fsockopen,fopen方法,下面我來給大家舉例說明。
fopen函數
fopen() 函數打開檔案或者 URL。
如果打開失敗,本函數傳回 FALSE。
文法
fopen(filename)filename 規定要打開的檔案或 URL。
從這個函數的說明來看是支援url的,代碼如下
代碼如下 | 複制代碼 |
$url = 'http://www.xxx.com/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File Exits'; } else { echo 'File Do Not Exits'; } ?> 這樣的寫個人很不推薦哦,因為它這們很是浪費伺服器性能資源的。 curl函數 例子 代碼如下 | 複制代碼 | <?php $url2 = 'http://www.jquerycn.cn/ test.jpg'; $ch = curl_init(); $timeout = 10; curl_setopt ($ch, CURLOPT_URL, $url2); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); //echo $contents; if (preg_match("/404/", $contents)){ echo '檔案不存在'; } ?> 小提示,不過此函數需我伺服器開啟才可用哦 推薦使用此方法哦,還有一種利用fsockopen 這種是專業的遠端采集版了, 代碼如下 | 複制代碼 | $url = "http://www.jquerycn.cn /.gif"; $info = parse_url($url); $fp = fsockopen($info['host'], 80,$errno, $errstr, 30); fputs($fp,"GET {$info['path']} HTTP/1.1rn"); fputs($fp, "Host: {$info['host']}rn"); fputs($fp, "Connection: closernrn"); $headers = array(); while(!feof($fp)) { $line = fgets($fp); if($line != "rn") { $headers[] = $line; }else { break; } } echo " "; print_r($headers); 小提示,不過此函數需我伺服器開啟才可用哦 | | |