国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

PHP中通過fopen()函數訪問遠程文件示例

2024-07-09 22:42:27
字體:
來源:轉載
供稿:網友

使用PHP不僅可以讓用戶通過瀏覽器訪問服務器端的文件,還可以通過HTTP或FTP等協議訪問其他服務器中的文件,可以在大多數需要用文件名作為參數的函數中使用HTTP和FTP URL來代替文件名。使用fopen()函數將指定的文件名與資源綁定到一個流上,如果文件名是“scheme://…”的格式,則被當成一個URL,PHP將搜索協議處理器(也被成為封裝協議)來處理此模式。

如果需要遠程訪問文件,必須在PHP的配置文件中激活“allow_url_fopen”選項,才能使用fopen()函數打開遠程文件。而且還要確定其他服務器中的文件是否有訪問權限,如果使用HTTP協議對遠程文件進行連接,只能以“只讀”模式打開。如果需要訪問的遠程FTP服務器中,對所提供的用戶開啟了“可寫權限,則使用FTP協議連接遠程文件時,就可以使用“只寫”或“只讀”模式打開文件。但不可以使用“可讀可寫”模式。

使用PHP訪問遠程文件就像訪問本地文件一樣,都是使用相同的讀寫函數處理。例如,可以用以下范例來打開遠程Web服務器上的文件,解析我們需要的輸出數據,然后就將這些數據用在數據庫的檢索中,或者簡單地將其輸出到網站剩下內容的樣式匹配中。代碼如下所示:

復制代碼 代碼如下:
<?php
//通過http打開遠程文件
$file = fopen(//www.jb51.net, "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;
?>

如果有合法的訪問權限,可以以一個用戶的身份和某FTP服務器建立連接,這樣就可以向該FTP服務器端的文件進行寫操作了。可以用該技術來存儲遠程日志文件等操作,但僅能用該方法來創建新的文件,如果嘗試覆蓋已經存在的文件,fopen()函數的調用將會失敗。而且要以匿名(anonymous)以外的用戶名連接服務器,并需要指明用戶名(甚至密碼),例如“ftp://user:password@ftp.lampbrother.net/path/to/file”。代碼如下所示:

復制代碼 代碼如下:
<?php
    //在ftp.lampbrother.net的遠程服務器上創建文件,以寫的模式打開
    file = fopen("ftp://user:password@ftp.lapbrother.net/path/to/file", "w");
    //將一個字符串寫入到遠程文件中去
    fwrite($file, "Linux+Apache+MySQL+PHP");
 
    fclose($file);
?>

為了避免由于訪問遠程主機時發生的超時錯誤,可以使用set_time_limit()函數對程序的運行時間加以限制。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长白| 土默特左旗| 汨罗市| 美姑县| 阳东县| 花垣县| 临夏市| 花莲市| 德令哈市| 泸溪县| 剑川县| 福贡县| 徐州市| 突泉县| 丰县| 临夏市| 建瓯市| 南开区| 青川县| 阳春市| 井研县| 阿克陶县| 平江县| 南郑县| 汾西县| 迭部县| 吉林省| 诸暨市| 磐安县| 宁德市| 淮安市| 石家庄市| 通州区| 浦北县| 东宁县| 景洪市| 治多县| 那曲县| 镇宁| 仪征市| 连山|