首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

《PHP 編程最快明白》第五講:目錄/檔案操作、URL 解析、Client IP 取得、檔案包含

     編輯:PHP 綜合知識

目錄建立/刪除

$dir = iconv("UTF-8", "GB2312", "中文目錄"); // Windows 檔案系統需 GB2312
if (!file_exists($dir)) mkdir($dir);
rmdir($dir); // 僅限空目錄,非空需遞歸刪除

檔案建立/寫入/讀取/轉陣列

$file = iconv("UTF-8", "GB2312", "中文檔名.txt");
file_put_contents($file, '');                    // 建立空檔(存在則清空)
file_put_contents($file, "第一行\r\n第二行", FILE_APPEND); // 追加寫入
echo file_get_contents($file);                   // 讀全文
$arr = file($file);                              // 按行讀入陣列
readfile($file);                                 // 直接輸出到瀏覽器

取得 URL 資訊與 Client IP

echo $_SERVER['HTTP_HOST'];      // 域名
echo $_SERVER['PHP_SELF'];       // 腳本路徑
echo $_SERVER['QUERY_STRING'];   // ? 後參數

// 真實 IP 判斷(考慮 Proxy)
if ($_SERVER['HTTP_CLIENT_IP']) $ip = $_SERVER['HTTP_CLIENT_IP'];
elseif ($_SERVER['HTTP_X_FORWARDED_FOR']) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
else $ip = $_SERVER['REMOTE_ADDR'];
echo $ip;

檔案修改時間與掃描目錄

$file = iconv("UTF-8", "GB2312", "中文檔名.txt");
echo time() - filemtime($file); // 修改時間差(秒),用於快取判斷

$arr = scandir("../"); // 取得目錄內所有檔案/資料夾(含 . 和 ..)
foreach ($arr as $v) {
    if (!is_dir("../$v")) echo iconv("GB2312", "UTF-8", $v) . "
"; }

檔案包含四大函式差異

函式行為典型用途
include執行時包含,失敗只警告模板、共用頁首頁尾
include_once只包含一次函式庫、類別定義
require編譯時包含,失敗報 Fatal Error核心設定、必須存在的檔案
require_once編譯時包含一次設定檔、自動載入

readfile() 不解析 PHP,直接輸出原始內容(適合輸出靜態 HTML/圖片)。

編碼處理關鍵

Windows 檔案系統預設 GB2312/CP950,PHP 腳本若為 UTF-8,操作中文路徑/檔名時必須雙向 iconv 轉碼,否則會出現亂碼或找不到檔案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved