首頁>>前端開發
自PbootCmsV2.0.6開始,PbootCMS支持自定義標簽,且升級不被覆蓋。
媽媽再也不用擔心我的代碼升級被覆蓋啦。
于是就想到用這個功能來實現實現自動清理runtime下的文件,防止緩存過多導致空間存儲不足。
這個文件位置在 home下 ExtLabelController 控制器。
原理也不多說,反正大家也不想了解,那就直接進入主題
第一步:打開/apps/home/controller/ExtLabelController.php文件后,在下圖紅圈位置下方添加代碼,大概36行
// 自動會話清理腳本 public function clean_session() { check_dir(RUN_PATH.'/archive', true); $data = json_decode(trim(substr(file_get_contents(RUN_PATH.'/archive/session_ticket.php'), 15))); if ($data) { if ($data - >expire_time && $data - >expire_time < time()) { ignore_user_abort(true); set_time_limit(7200); ob_start(); ob_end_flush(); flush(); $rs = path_delete(RUN_PATH.'/session'); if ($rs) { $data - >expire_time = time() + 60 * 60 * 24; // 下一次清理時間 create_file(RUN_PATH.'/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } } } else { $data - >expire_time = time() - 60 * 60 * 24; // 初始化清理時間 create_file(RUN_PATH.'/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } }
第二步:在前端公共模板底部添加下面代碼,至于為什么不直接在ExtLabelController控制器run函數中調用,別問那么多,就算你問我也不說
<script src='/?p=/ExtLabel/clean_session/' async='async'></script>
保存文件,完成!這樣每天第一個訪問你網站就會觸發自動清理腳本,如果上次清理時間是一天前(時間可自行設置),就會執行自動清理
注意:這種方法有一個缺點就是如果你正在網站操作網站后臺, 訪問前端頁面觸發清理后會強制退出后臺,但幾乎影響不到,一天就觸發一次,大概率半夜就觸發了。
問:網站沒人訪問觸發不了清理怎么辦?
答:我建議你不要關心這個,都沒人訪問你的網站,你還有個錘子東西需要清理?
問:聽人說前臺插入script觸發會不安全?
答:都是成年人了其中的貓膩自行辨別,或者你需要交點智商稅,該觸發方式源于官方的蜘蛛記錄與文章瀏覽量。
問:有沒有非前臺插入script的方法?
答:有但不推薦,非script無非就是在公共控制類里面執行吧,但是官方更新會覆蓋。非要杠的話把函數里的代碼復制到公共控制類里面去就行。
注:不知道你學廢了沒有,如果你還沒學廢,可以請博主吃個快餐有償代勞
末尾附上完整帶日志清理與緩存清理的 ExtLabelController.php 文件代碼
< ?php /** * @copyright (C)2020-2099 Hnaoyun Inc. * @author XingMeng * @email hnxsh@foxmail.com * @date 2020年3月8日 * 個人擴展標簽可編寫到本類中,升級不會覆蓋 */ namespace apphomecontroller; use coreasicController; class ExtLabelController { protected $content; /* 必備啟動函數 */ public function run($content) { // 接收數據 $this - >content = $content; // 執行個人自定義標簽函數 // $this->test(); // 返回數據 return $this - >content; } // 測試擴展單個標簽 private function test() { $this - >content = str_replace('119.126.107.48', get_user_ip(), $this - >content); } // 自動會話清理腳本 public function clean_session() { check_dir(RUN_PATH.'/archive', true); $data = json_decode(trim(substr(file_get_contents(RUN_PATH.'/archive/session_ticket.php'), 15))); if ($data) { if ($data - >expire_time && $data - >expire_time < time()) { ignore_user_abort(true); set_time_limit(7200); ob_start(); ob_end_flush(); flush(); $rs = path_delete(RUN_PATH.'/session'); if ($rs) { $data - >expire_time = time() + 60 * 60 * 24; // 下一次清理時間 create_file(RUN_PATH.'/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } } } else { $data - >expire_time = time() - 60 * 60 * 24; // 初始化清理時間 create_file(RUN_PATH.'/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } } // 自動日志清理腳本 public function clean_log() { $interval = '3'; // 每隔多少天清理一次 $retain = '7'; // 需要刪除多少天前的日志 check_dir(RUN_PATH.'/archive', true); $data = json_decode(trim(substr(file_get_contents(RUN_PATH.'/archive/log_ticket.php'), 15))); if ($data) { if ($data - >expire_time && $data - >expire_time < time()) { $startday = date('Y-m-d H:i:s', mktime(0, 0, 0, date('m'), date('d') - $retain, date('Y'))); $rs = coreasicDb: :table('ay_syslog') - >where("create_time<'$startday'") - >delete(); if ($rs) { $data - >expire_time = time() + 60 * 60 * 24 * $interval; // 下一次清理時間 create_file(RUN_PATH.'/archive/log_ticket.php', "<?php exit();?>".json_encode($data), true); } } } else { $data - >expire_time = time() - 60 * 60 * 24 * $interval; // 初始化清理時間 create_file(RUN_PATH.'/archive/log_ticket.php', "<?php exit();?>".json_encode($data), true); } } }
猜你喜歡
- 2022-11-10 【官方文檔】百度搜索網站被黑防范指南
- 2022-11-03 【干貨必備】百度搜索優質內容指南
- 2022-08-01 百度隱藏“快照”功能:原因未知-百度快照沒了?
- 2022-06-20 淺析“百度搜索基礎信息設置規范”!
- 2022-06-15 SEO尷尬,有排名,沒流量,沒咨詢,怎么辦?
- 2022-05-16 IE瀏覽器宣布6月16日退役 Edge瀏覽器將接棒
- 搜索
-
- 2023-01-11 營銷的底層邏輯
- 2023-01-05 如何生產優質的圖文內容
- 2022-12-10 SEM精細化運營:從展現到轉化的40個提···
- 2022-12-01 網站頁面黑白色濾鏡效果實現技巧
- 2022-11-26 優化 CSS 代碼的12個小技巧
- 2022-11-22 百度競價,簡單的創意也能收獲滿滿的點擊量···
- 2022-11-17 全中國一共有多少IP地址?
- 2022-11-10 【官方文檔】百度搜索網站被黑防范指南
- 2022-11-10 PbootCMS 默認Sqlite數據庫···
- 2022-11-03 【干貨必備】百度搜索優質內容指南
- 2022-11-03 SEM投放前,需要做哪些準備?
- 2022-11-02 淺談代運營服務的商業模式
- 2019-11-01 Origin DNS error:使用百···
- 2020-12-01 一級域名好還是二級域名好?
- 2020-10-13 百度抓取診斷工具一直抓取失敗怎么辦?
- 2020-06-20 “401 - 未授權: 由于憑據無效,訪···
- 2019-12-09 域名解析后,網站返回狀態碼511應對方法
- 2021-01-06 百度移動端的搜索結果上線“踩頂”功能,對···
- 2020-09-03 element.style樣式的修改
- 2019-08-12 網站出現“403,服務器上文件或目錄拒絕···
- 2019-11-06 正確打開.db數據庫文件的兩種方式,避免···
- 2020-10-20 UC神馬搜索怎么做快速排名優化
- 2020-04-10 百度下拉框怎么刷?刷百度下拉框軟件原理及···
- 2020-09-27 css3實現一個div設置多張背景圖片
- 2019-09-26 如何顯示ftp里面的隱藏文件
- 2019-08-26 合肥某設計公司客戶:服務器忘記續費,百度···
- 2022-11-03 SEM投放前,需要做哪些準備?
- 2021-04-20 市場推廣渠道有哪些?一般企業市場推廣計劃···
- 2019-12-10 胸有成竹!SEO面試最喜歡問的100個問···
- 2020-06-10 新站優化必備操作,你都會了嗎?
- 2021-06-17 速來看!研發工程師直播專場中的那些重要知···
- 2019-11-26 以網站優化為核心的推廣營銷方式有哪些缺陷···
- 2020-04-03 深度解讀:seo之《百度搜索優質內容指南···
- 2020-05-14 網站被k,收錄歸零消失,是怎么回事以及怎···
- 2021-02-25 什么樣的網站關鍵詞有轉化率?
- 2019-02-19 如何處理品牌詞名稱,被其他站點收錄?
- 熱門標簽
-
- Error 1016
- Origin DNS error
- 源DNS服務器錯誤
- element.style
- css
- .db文件
- 域名解析
- 別名解析
- CNME解析
- A記錄
- asp.net
- php
- jsp
- 開發語言對比
- 白名單
- 香港主機
- 主機白名單
- 寶塔
- 個人備案
- 企業備案
- 網站備案
- 字體大小
- 用戶體驗
- 500錯誤
- 錨點跳轉
- 301
- 301重定向
- 301永久重定向
- 虛擬主機
- 網站搭建
- 自適應網站
- web前端
- 移動端
- 響應式網站
- 網站被黑
- 后臺入侵
- 源碼安全
- 開源CMS
- 織夢cms
- ftp
- flashfxp
- 阿里云服務器
- 實例類型
- js空鏈接
- 偽元素選擇器
- 偽類選擇器
- CSS3
- 備案駁回
- 阿里云備案
- 域名備案
- 百度轉碼
- 禁止轉碼
- 服務器流量
- 網站流量耗盡
- 谷歌插件
- Chrome
- win10連接遠程服務器
- 網站建設
- 低成本網站
- 服務器空間
- 網站空間選擇
- 網站設計
- seo要點
- seo建站方案
- 網站安全
- 網站體驗設計
- 老年用戶
- html標簽
- seo標簽
- 網站標簽
- 標簽優化
- 獨立ip主機
- seo服務器
- 0收錄
- 新域名收錄
- 網站收錄
- dede
- 分頁樣式代碼
- X-Powered-By
- robots.txt
- 營銷型網站
- 定制網站
- javascript
- 編程語言
- 服務器穩定性
- 網站續費
- filter
- 濾鏡
- SQL
- Sqlite
- pbootcms
- 蜘蛛
- 屏蔽蜘蛛
- PbootCMS
- sqlite
- mysql
- 數據庫