Toggle main menu visibility
下載輕鬆架
套件下載
使用手冊
發問討論
網站地圖
:::
登入
登入
帳號
密碼
登入
:::
所有書籍
「PHP8 範例」目錄
MarkDown
7. admin/ 後台目錄
1. index.php 首頁檔
2. header.php 共同要執行的程式
3. config.php 設定檔
4. function.php 共同函式檔
5. templates 樣板檔目錄
5-1 templates/index.tpl
5-2 templates/head.tpl
5-3 templates/nav.tpl
5-4 templates/aside.tpl
5-5 templates/op_index.tpl 列出所有文章
5-6 templates/op_show.tpl
5-7 templates/op_edit.tpl
5-8 templates/op_create.tpl
7. admin/ 後台目錄
7-1 admin/index.php 管理後台
7-2 admin/.htaccess
8. css/style.css 樣式檔
9. SimpleRest.php
10. NewsRest.php
11. api.php
7-2 admin/.htaccess
PHP8 範例 ======= ```php assign('news', $news); break; case "store": $id = store(); //執行後轉向 header("location: ../index.php?op=show&id=$id"); exit; case "update": update($id); //執行後轉向 header("location: ../index.php?op=show&id=$id"); exit; // 刪除圖片 case 'destroy_file': destroy_file($id, $file, $thumb); header("location: index.php?op=edit&id=$id"); exit; // 刪除文章 case 'destroy': destroy($id); header("location: ../index.php"); exit; default: $news = create(); $smarty->assign('news', $news); break; } $smarty->assign('year', 0); $smarty->assign('cate_id', 0); $smarty->assign('op', $op); $smarty->display('index.tpl'); // 刪除文章 function destroy($id) { global $db; // 取出所有檔案後依序刪除 $files = get_files($id); foreach ($files as $file => $thumb) { destroy_file($id, $file, $thumb); } // 刪除縮圖目錄 rmdir(_PATH . "/uploads/$id/thumbs"); // 刪除原圖目錄 rmdir(_PATH . "/uploads/$id"); // 刪除資料庫資料 $sql = "DELETE FROM `articles` WHERE `id` = ?"; $sth = $db->prepare($sql); $sth->execute([$id]); } // 刪除檔案 function destroy_file($id, $file, $thumb) { // 刪除原圖檔或影片 if (file_exists(_PATH . "/uploads/$id/$file")) { unlink(_PATH . "/uploads/$id/$file"); } // 刪除縮圖 if (file_exists(_PATH . "/uploads/$id/thumbs/$thumb")) { unlink(_PATH . "/uploads/$id/thumbs/$thumb"); } } // 更新文章 function update($id) { global $db; $sql = "UPDATE `articles` SET `title` = ?, `info` = ?, `date` = ?, `content` = ?, `cate_id` = ? WHERE `id` = ?"; $sth = $db->prepare($sql); $values = [ $_POST['title'], $_POST['info'], $_POST['date'], $_POST['content'], $_POST['cate_id'], $id, ]; $sth->execute($values); // 檔案上傳 uploads($id); return $id; } // 建立文章 function create() { $news = [ 'id' => '', 'title' => '', 'info' => '', 'date' => date('Y-m-d'), 'content' => '', 'cate_id' => 3, ]; return $news; } // 編輯 function edit($id) { $news = show($id); return $news; } // 儲存 function store() { global $db; // 寫入資料庫 $sql = "INSERT INTO `articles` (`title`, `info`, `date`, `content`, `cate_id`) VALUES(?, ?, ?, ?, ?)"; $sth = $db->prepare($sql); $values = [ $_POST['title'], $_POST['info'], $_POST['date'], $_POST['content'], $_POST['cate_id'], ]; $sth->execute($values); // 取得該資料的流水號 $id = $db->lastInsertId(); // 上傳檔案 uploads($id); return $id; } // 上傳檔案 function uploads($id) { // 依序讀出每個檔案的順序 $i foreach ($_FILES['files']['name'] as $i => $filename) { if (!$filename) { break; } // 檢查檔案是否上傳成功 if ($_FILES['files']['error'][$i] === 0) { // 讓檔案放在文章編號的目錄下,比較方便管理,檢查有無該目錄 if (!is_dir(_PATH . "/uploads/{$id}")) { // 若無建立原檔目錄 mkdir(_PATH . "/uploads/{$id}"); // 順便建立縮圖目錄 mkdir(_PATH . "/uploads/{$id}/thumbs"); } // 暫存檔來源 $file = $_FILES['files']['tmp_name'][$i]; // 抓取副檔名 $ext = pathinfo($filename, PATHINFO_EXTENSION); // 前置字串 $prefix = date("YmdHis"); // 欲放置原圖到哪裡 $dest = _PATH . "/uploads/{$id}/{$prefix}-{$i}.{$ext}"; if ($ext == 'mp4') { // 縮圖欲放置到哪裡 $thumb_dest = _PATH . "/uploads/{$id}/thumbs/{$prefix}-{$i}.jpg"; // 建立物件 $ffmpeg = FFMpeg\FFMpeg::create(array( 'ffmpeg.binaries' => _PATH . '/ffmpeg/bin/ffmpeg.exe', 'ffprobe.binaries' => _PATH . '/ffmpeg/bin/ffprobe.exe', 'timeout' => 3600, // 底層進程的時間上限 'ffmpeg.threads' => 12, // FFMpeg 應該使用的線程數 )); // 開啟影片 $video = $ffmpeg->open($file); // 擷取第N秒的話格,並存檔 $video ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10)) ->save($thumb_dest); // 再將大圖縮成480小圖 $image = Image::make($thumb_dest)->resize(480, 480, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($thumb_dest); // 將檔案移至指定位置 if (!move_uploaded_file($file, $dest)) { die("無法將檔案{$file}上傳至指定位置{$dest}"); } } else { // 縮圖欲放置到哪裡 $thumb_dest = _PATH . "/uploads/{$id}/thumbs/{$prefix}-{$i}.{$ext}"; // 將原圖縮成1600大圖 $image = Image::make($file)->resize(1600, 1600, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($dest); // 再將大圖縮成480小圖 $image = Image::make($dest)->resize(480, 480, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($thumb_dest); } } else { die("上傳錯誤:{$_FILES['files']['error'][$i]}"); } } } ```
:::
書籍目錄
展開
|
闔起
快速登入
所有討論區
Tad Search 資料查詢
懶人框架討論區
實戰PHP7+MySQL
XOOPS輕鬆架快速上手
校園網站輕鬆架一般討論區
Booking Helper 預約助手
es_stud_sign 班級報名
es charge 學生收費管理
E-Stud import 學生名冊管理
es_after_school 課後照顧報名
es_exam 學生作業繳交
ES_panel 校務行政面板
es_timetable 課表
ES_youtube 本校影音
info_whats 網路設備記錄
jill booking 場地預約
jill_notice 臨時公告
jill query 簡易查詢
jill receipt 領據填報
kw club 社團報名
kw device 設備借用管理系統
ntpc_oprnid 新北市 OpenID 登入
TinyD嵌入內容模組
ugm contact us 聯絡我們
ugm page 自訂頁面
ugm table 萬用表格
Yaoh Servicelearning 服務學習管理系統
dummy 自訂模組
soone_submit 投稿模組
Tad Adm 站長工具箱
Tad Assignment 作業上傳展示模組
Tad Blocks 進階區塊管理
Tad Book3 線上書籍
Tad Cal 行事曆
Tad Cbox 即時留言簿
Tad Discuss 討論區模組
Tad Embed 崁入模組
Tad Evaluation 評鑑檔案管理
Tad Form 萬用表單模組
Tad FAQ 常見問答
Tad Google 相簿
Tad Gallery 電子相簿
Tad Guide 安裝精靈
Tad Honor 榮譽榜
Tad idioms 背背成語
Tad Link 好站連結
Tad Login 快速登入
Tad Lunch3 午餐資訊
Tad Lunch2 營養午餐公告
Tad Meeting 會議系統
Tad Merage 線上合併套印
Tad News 本站消息
Tad Player 影音播放
Tad RSS 友站新聞
Tad Repair 維修通報
Tad SiteMap網站地圖
Tad Timeline 重要紀事
Tad Themes 佈景管理
Tad Tools 工具包
Tad TV 直播電視
Tad Uploader 檔案上傳模組
Tad Users 大量會員管理
Tad Web 多人網頁模組
MyTabs 我的頁籤
Random Quote 隨機小語
LogCounterX 網站流量統計
Yaoh light 多區塊多層次跑馬燈模組
校園網站輕鬆架功能建議區
佈景討論區
即時留言簿
search
進階搜尋
計數器
今天:
昨天:
總計: