使用PHP不僅可以讓使用者透過瀏覽器存取伺服器端的文件,還可以透過HTTP或FTP等協定存取其他伺服器中的文件,可以在大多數需要用文件名稱作為參數的函數中使用HTTP和FTP URL來代替文件名。使用fopen()函數將指定的檔案名稱與資源綁定到一個流上,如果檔案名稱是「scheme://…」的格式,則被當成一個URL,PHP將搜尋協定處理器(也被成為封裝協議)來處理此模式。
如果需要遠端存取文件,必須在PHP的設定檔中啟動「allow_url_fopen」選項,才能使用fopen()函數開啟遠端檔案。而且也要確定其他伺服器中的檔案是否有存取權限,如果使用HTTP協定對遠端檔案進行連接,只能以「唯讀」模式開啟。如果需要存取的遠端FTP伺服器中,對所提供的使用者開啟了「可寫入權限,則使用FTP協定連接遠端檔案時,就可以使用「只寫」或「唯讀」模式開啟檔案。但不可以使用「可讀可寫」模式。的輸出數據,然後就將這些數據用在資料庫的檢索中,或者簡單地將其輸出到網站剩下內容的樣式匹配中。使用者的身分和某FTP伺服器建立連接,這樣就可以向該FTP伺服器端的文件進行寫入操作了。覆寫已經存在的文件,fopen()函數的呼叫將會失敗。 ftp.lampbrother.net/path/to/file」。程式碼如下所示:
<?php //通过http打开远程文件 $file = fopen(http://www.php.cn, "r") or die("打开远程文件失败!!"); while (!feof($file)){ $line = fgets($file,1024); //每读取一行 //如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件 if (preg_match("/<titile>(.*/)<\/title>",$line,$out)){ //使用正则匹配标题标记 $title = $out[1]; //将标题标记中的标题字符取出 break; //退出循环,结束远程文件读取 } } fclose($file); echo $title; ?>
為了避免由於存取遠端主機時發生的逾時錯誤,可以使用set_time_limit()函數對程式的運行時間加以限制。
更多PHP中透過fopen()函數存取遠端檔案範例相關文章請關注PHP中文網!