使用文本文件作為輕量級數據存儲時,實現前端點擊欄標題動態排序(升序/降序切換),無需關系數據庫支持。

data/ 目錄歌曲名稱|歌手|大小找一個字代替.txt → 找一個字代替|卓依婷|48554$sort_array[]$dir 參數執行 asort()(升序)或 arsort()(降序)$key_array[]$key_array 順序重新讀取文件輸出<script>
sorted = "<?echo $sorted;?>";
dir = parseInt("<?echo $dir;?>");
function sortby(obj) {
sorted == obj.ename ? mydir = -dir : mydir = dir;
obj.href = location.pathname + "?sorted=" + obj.ename + "&dir=" + mydir;
}
function tips(obj) {
sorted == obj.ename ? mydir = -dir : mydir = dir;
obj.title = "按[" + obj.chname + "][" + (mydir>0?"降序":"升序") + "]排列";
}
</script>
<a href='#' onmouseover='tips(this)' onmousedown='sortby(this)'
chname='歌手' ename='singer'>歌手</a>
利用 chname(中文名)、ename(字段名)自定義屬性,JavaScript 直接讀取,避免硬編碼。
$dir > 0 ? asort($sort_array) : arsort($sort_array);
// 狀態欄提示
obj.title = "按[" + obj.chname + "][" + (mydir>0?"降序":"升序") + "]排列";
obj.href = "sortby: 按[歌手][升序]排列" —— 以 字母: 內容 形式設置 href,瀏覽器狀態欄顯示自定義文本而非 URL。
單文件包含:配置讀取、JS 邏輯、HTML 表格、PHP 讀取排序輸出。採用雙次讀取文件策略(首次構建排序索引,二次按序輸出),權衡內存與速度;大數據量建議首次讀取時緩存內容到內存數組。