整理了幾個高頻使用的工具函數,涵蓋文件操作、靜態頁面生成、數據庫記錄檢查、目錄遞歸刪除等場景,可直接引入項目複用。
function PHP_Read($file_name) {
$fd = fopen($file_name, 'r');
$buf = '';
while ($bufline = fgets($fd, 4096)) {
$buf .= $bufline;
}
fclose($fd);
return $buf;
}
以 4KB 為緩衝區逐行讀取,適合大文件。
function PHP_Write($file_name, $data, $method = 'w') {
$filenum = @fopen($file_name, $method);
if (!$filenum) return false;
flock($filenum, LOCK_EX); // 獨佔鎖防併發衝突
$file_data = fwrite($filenum, $data);
fclose($filenum);
return $file_data;
}
function phptohtm($filefrom, $fileto, $u2u = 1) {
$data = ($u2u == 1) ? PHP_Read($filefrom) : $filefrom;
return PHP_Write($fileto, $data);
}
支援從文件讀取內容或直接傳入字符串生成靜態頁。
function rec_exist($table, $where) {
$query = "SELECT COUNT(*) AS num FROM $table $where";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
return ($row['num'] == 0) ? false : $row['num'];
}
注意:mysql_* 函數已棄用,建議改用 PDO 或 MySQLi。
function del_DIR($directory) {
$mydir = dir($directory);
while ($file = $mydir->read()) {
if ($file === '.' || $file === '..') continue;
$path = "$directory/$file";
if (is_dir($path)) {
del_DIR($path); // 遞歸刪除子目錄
} else {
unlink($path); // 刪除文件
}
}
$mydir->close();
rmdir($directory); // 刪除空目錄
}
遞歸遍歷刪除所有子文件與子目錄,最後刪除自身。