精品教程
Number.isNaN 回傳 false,輸入卻不是數字:表單驗證怎樣寫
Number.isNaN("abc") 為何是 false?用數量欄位示例,先檢查空白與十進位格式,再轉成數字,保留合法的 0 並拒絕超出範圍的值。
PHP Windows 套件重建:版本號相同,也要確認 Brotli 修補包的 -1 後綴
PHP 團隊在 2026 年 10 月 26 日更新 Windows 發行套件,提供 8.5.12-1、8.4.27-1、8.3.36-1 與 8.2.35-1。
PHP兩陣列相加少了一筆:+與array_merge怎麼選
把兩批文章標題放進陣列,用$left + $right合起來,結果右邊第一筆不見了。PHP陣列的加號是按鍵名做聯集,不是把所有值接到後面。兩邊有相同鍵名時,左邊的值會留下,右邊對應的值會被忽略。 兩個列表都從0開始,第一個鍵就撞上了 以下每段都是獨立PHP範例,可各自存成.php檔執行。註解列出預期輸出,資料只是示例字串。 <?php $left = ['header', 'footer']; $right = ['sidebar']; echo json_encode($left + $right), PHP_EOL; // ["header","footer"] echo json_encode(array_merge($left, $right)), PHP_EOL; // ["header","footer","sidebar"] left的鍵是0、1;right的鍵也是0。因此,sidebar與header搶的是同一個鍵,加號保留左邊的header,並不是按文字內容去除重複。若只是要把兩批列表依序接起來,array_merge會保留三個值,並把整數鍵從0重新編號。 字串鍵相同時,兩種寫法的優先順序相反 <?php $left = ['color' => 'blue', 'rows' => 12]; $right = ['color' => 'red', 'cache' => true]; echo json_encode($left + $right), PHP_EOL; // {"color":"blue","rows":12,"cache":true} echo json_encode(array_merge($left, $right)), PHP_EOL; // {"color":"red","rows":12,"cache":true} 加號保留左邊color的blue;array_merge則由後面的red覆蓋前面的值。右邊獨有的cache,在兩種結果裡都會出現。合併網站設定時,先決定同鍵衝突要由誰優先,再選寫法;交換左右位置也會改變結果。 這個例子只處理一層鍵值。巢狀設定裡若還有陣列,不能直接把它當成逐層遞迴合併。 數字是文章ID時,不要順手重編鍵名 <?php $left = [101 => 'Article A']; $right = [202 => 'Article B']; echo json_encode($left + $right), PHP_EOL; //...
PHP 上傳進度新增風險:已升級仍要核對 Session 序列化設定
PHP 於 2026 年 10 月 23 日發布 Session upload progress 補充公告,說明 CVE-2026-115560 的特殊設定風險。
Git log -S漏掉改動?用-G找增刪行
想找「哪次提交把timeout從10改成30」,明明看過那筆修改,git log -S 'timeout'卻沒列出來。原因可能不是紀錄消失,而是搜尋條件不同:-S看指定字串在檔案裡的出現次數有沒有變;-G則檢查差異裡新增或刪除的行是否符合正規表示式。 值改了,字串出現次數卻沒變 假設config.txt原本只有一行timeout=10,下一次提交改成timeout=30。兩個版本都只出現一次timeout;因此,以timeout作為-S條件,不會因為數值變動而選出這筆提交。 git log --oneline -S 'timeout' -- config.txt git log --oneline -G 'timeout' -- config.txt 第二條會檢查patch裡的增刪行。因為刪掉的timeout=10、新增的timeout=30都符合timeout,所以-G能找到這次改值。第一條仍可能列出最早新增timeout的提交,不能把「有搜尋結果」誤認為已找到這次修改。 用一個練習庫,看清楚兩組結果 在獨立練習資料夾建立Git儲存庫,先提交config.txt,內容為timeout=10,提交訊息用base;再改成timeout=30,提交訊息用raise timeout;最後補上第二行retry=2,提交訊息用add retry。每次都先git add config.txt再提交。完成後查詢: git log --format=%s -S 'timeout' -- config.txt # base git log --format=%s -G 'timeout' -- config.txt # raise timeout # base git log --format=%s -S 'timeout=10' -- config.txt # raise timeout # base 這裡的註解是預期顯示的提交訊息,不是另一條命令。-S 'timeout=10'能找到raise timeout,是因為完整字串timeout=10從一次變成零次;搜尋timeout時,它仍各出現一次。最後新增retry那筆不符合這些條件,所以不會列出。 找到提交後,再看實際改了哪一行 git log -p -G '^timeout=' -- config.txt # 若已找到要核對的提交,將COMMIT換成它的雜湊 git show COMMIT -- config.txt ^timeout=只比對行首為timeout=的增刪行,能縮小搜尋範圍;-p會把差異一併顯示。選中提交後,核對刪除行、新增行、檔案路徑及上下文,再判斷它是否就是造成問題的修改。這些查詢不會把工作目錄切回舊版。 搜不到時,先檢查條件與範圍...
Bash前段指令失敗卻回傳0:用pipefail檢查管線
一段檢查或處理資料的指令,用豎線接到下一段後,前段明明失敗,整條管線卻回傳0。若你用這個結果決定是否繼續備份、部署或匯入,可能漏掉前面的錯誤。Bash一般以管線最後一段的退出狀態作為整體結果;啟用pipefail後,才會把前段的非零狀態納入判斷。 先重現:前段失敗,最後一段仍成功 以下用false刻意回傳1、true回傳0,方便觀察規則,不會處理檔案。請存成.sh檔並用bash 檔名.sh執行;範例使用Bash,不能假設所有以sh執行的環境都有相同選項。 #!/usr/bin/env bash set +o pipefail false | true rc=$? printf 'pipeline status=%s\n' "$rc" # pipeline status=0 set -o pipefail false | true rc=$? printf 'pipeline status=%s\n' "$rc" # pipeline status=1 第一組關閉pipefail,管線狀態取自最後的true,所以是0。第二組啟用後,前段false的1成為整條管線的狀態。若所有段落都回傳0,啟用pipefail後的整體結果仍是0。 rc=$?要緊接管線。若先執行echo或另一條指令,$?就會變成那條指令的狀態;上面的printf是在保存rc之後才顯示結果。 多段都失敗時,取最右側的非零狀態 #!/usr/bin/env bash set -o pipefail (exit 7) | (exit 3) | true rc=$? printf 'pipeline status=%s\n' "$rc" # pipeline status=3 結果是3,不是7,也不是最後一段true的0。pipefail取管線位置最右側、且退出狀態非零的那一段;不是取最大的數字,也不是取最後完成執行的程序。括號裡的exit只結束該子shell,不會直接結束外層腳本。 取得失敗狀態後,還要決定下一步 pipefail本身不等於「出錯立即停止」。前面的第二組範例中,管線回傳1後,printf仍會執行。若這個步驟失敗就必須停止,請明確寫出分支,並保留原來的狀態。 #!/usr/bin/env bash set -o pipefail if false | true; then printf '檢查完成,繼續下一步\n' else rc=$? printf '管線未通過,status=%s\n' "$rc" >&2 exit "$rc"...
MacCMS 還在用 PHP 7.2?PHP2Shell 緩解、修補與升級路線
MacCMS 網站還在用 PHP 7.2,遇到 PHP2Shell 時,不能只在面板按「更新至 7.2 最新版」便結案。PHP 7.2 已於 2020 年 11 月 30 日結束上游支援,最後一版 7.2.34 早於這次漏洞。先確認自己的 7.2 是誰提供的,再決定使用供應商回移補丁,或把 MacCMS 搬到已修補且仍受支援的 PHP 環境。 短期可在正確的 PHP 設定中關閉 session.upload_progress.enabled,減少部分攻擊路徑;這不是完整修復。若沒有可核實的修補,應先限制站點的外部存取,利用維護窗口完成副本測試,不要把「舊模板只能用 7.2」當成可以一直公開運行的理由。 先分清:Ubuntu 的 PHP 7.2,還是寶塔的 PHP 7.2? 登入 SSH 後先盤點,不要先改設定: cat /etc/os-release command -v php php -v ps -eo pid,ppid,args | grep '[p]hp-fpm' systemctl list-units --type=service --all | grep -E 'php.*fpm' 如果系統有 APT,再查是否真的安裝了發行版的 7.2 套件: dpkg-query -W php7.2-common php7.2-fpm apt-cache policy php7.2-common php7.2-fpm 找不到這些套件,不等於網站沒有 PHP。寶塔或其他面板可能維護自己的安裝目錄,網站也可能在容器內。請把 MacCMS 網域的 FastCGI socket/連接埠,對到實際 FPM master 與...
PHP2Shell SSH 處理教學:停用上傳進度、升級 PHP 與重啟驗證
能登入 SSH 的站長,處理 PHP2Shell 時先做三件事:找出網站真正使用的 PHP、在正確位置套用臨時緩解、更新 PHP 並重啟對應工作程序。下面以 Ubuntu 24.04、APT 安裝的 PHP 8.3-FPM 為完整操作例子,另說明寶塔及 Docker 的分流;路徑與服務名稱要跟自己的環境核對,不能整篇不看就貼上。 PHP 官方已在 2026 年 10 月 21 日修補 CVE-2026-109618 與 CVE-2026-109619。上游修補版是 8.2.35、8.3.36、8.4.27、8.5.12。發行版可能回移修補,請比對完整套件版本;例如 Ubuntu 24.04 的公告修補版為 8.3.6-0ubuntu0.24.04.13。 登入 SSH 後,先看 PHP 是誰安裝的 先執行以下唯讀命令。它們用來找線索,尚未改動設定或更新套件: cat /etc/os-release command -v php php -v php --ini ps -eo pid,ppid,args | grep '[p]hp-fpm' systemctl list-units --type=service --all | grep -E 'php.*fpm|apache2|httpd' php -v 和 php --ini 顯示的是命令列 PHP,未必是網站的 PHP。還要對照網站的 Nginx/Apache 虛擬主機設定、FastCGI socket,以及對應 FPM master 的啟動路徑。寶塔可能使用自己的 PHP 目錄;容器內的 PHP 也不會隨宿主機的 APT...
PHP2Shell 高危漏洞已修補:WordPress 站長該確認什麼?
PHP 官方於 2026 年 10 月 21 日發布緊急安全更新,修補俗稱 PHP2Shell 的兩個高危漏洞。使用 WordPress 的站長,現在要向主機商確認的是:網站實際使用的 PHP 是否已套用修補,以及更新後的工作程序是否已重新啟動。只在 WordPress 後台按下核心、主題或插件更新,無法完成這次 PHP 執行環境的修補。 PHP2Shell 影響哪些網站? 這次涉及 CVE-2026-109618 與 CVE-2026-109619,官方預告列出的 CVSS v4.0 評分均為 9.2。問題出在 PHP 核心處理請求與記憶體的方式,可能讓未登入的遠端攻擊者執行程式碼。 PHP 官方把所有提供網頁請求的 PHP 安裝列為風險範圍,包括 PHP-FPM、Apache 的 mod_php、php-cgi、FrankenPHP 與 LiteSpeed。當中 mod_php 的風險被列為最高,已有在應用程式碼執行前觸發攻擊的示範。因此,網站有登入頁、關閉會員註冊,或沒有讓訪客上傳檔案,都不能直接當成安全判定。 兩份上游公告分別描述記憶體耗盡時的狀態損壞,以及前一次請求留下的全域狀態引用了已釋放的記憶體。這也解釋了為何處理範圍會超出單一 WordPress 插件:維護者需要檢查主機上的 PHP 本身。 先對照分支,再確認修補來源 PHP 官方已發布下列修補版本;若採用上游版本,請更新至所屬分支的這個版本或更新版本。 PHP 8.2:8.2.35。 PHP 8.3:8.3.36。 PHP 8.4:8.4.27。 PHP 8.5:8.5.12。 由 Linux 發行版或長期支援供應商維護的套件,可能採用回移補丁:保留原本的基礎版本號,把安全修正加進套件。例如 Ubuntu 官方列出,24.04 的修補套件為 8.3.6-0ubuntu0.24.04.13,22.04 則為 8.1.2-1ubuntu2.28。不能因為畫面仍顯示 8.3.6,就斷定它一定沒有修補;也不能只聽到「有自動更新」就認定完成。請核對完整套件版本和供應商公告。 PHP 8.1 及更舊版本已不再獲得 PHP 專案的正常更新。官方這次提供了 7.4、8.0、8.1 的最小原始碼回移修補,供特定維護情境使用,並不代表這些分支恢復支援。若主機商無法提供相應修補,應安排遷移至仍受支援的 PHP 版本,先確認網站、主題與插件的相容性。 WordPress 站長可以怎樣向主機商確認? 先登入自己的 WordPress...
JS填0卻變預設值:分清雙豎線與空值合併
設定值明明是0,畫面卻套用了預設的10;開關明明是false,結果又變成開啟。先找程式裡是否用了value || 預設值。雙豎線會把0、false和空字串等falsy值一起當成切換到右側的條件。若只有null與undefined才代表缺值,應改用??。 0有值,雙豎線仍會換掉它 這個例子假設0是允許的設定,10才是缺值時的預設。可直接在瀏覽器Console或Node.js執行。 const configuredCount = 0 console.log(configuredCount || 10) // 10 console.log(configuredCount ?? 10) // 0 ||不是只檢查變數有沒有資料。它先判斷左側是否為truthy;若不是,就回傳右側的值。??的條件較窄,只在左側為null或undefined時採用右側;0會原樣保留。 關閉與空白,也可能是刻意的選擇 const enabled = false const customLabel = '' console.log(enabled || true) // true console.log(enabled ?? true) // false console.log(customLabel || '未填') // 未填 console.log(customLabel ?? '未填') // 空字串 若false表示關閉某項功能,使用|| true會把它改成true。若空字串表示「不要顯示標籤」,||也會補回文字。先決定這些值在你的功能裡是否合法,再選運算子;不是所有預設值都應一律改成??。 例如名稱欄位若不允許空白,保留空字串就不符合需求。那是欄位驗證與資料整理的責任,不能只靠??替你判斷。 真正缺值時,才採用預設 const settings = { count: 0, label: null } console.log(settings.count ?? 10) // 0 console.log(settings.label ?? '未填') // 未填 console.log(settings.delay ?? 5) // 5 這裡settings已經是物件;沒有delay屬性,讀取結果為undefined,因此採用5。label明確設為null,也會採用預設。這不表示??能讓不存在的變數或任何屬性存取都安全,它處理的是左側已求值後的結果。 保留值,不等於值已經合法 ??不會把字串「0」轉成數字,也不會把NaN變成預設值。若資料來自表單或API,仍要依資料格式確認型別、範圍與缺值規則,再把可用資料帶進畫面。...
Maccms模板
文尼模板 第53套 v1.0.6 maccms模板
模板介紹
這是一款基於 MacCMS V10 的影視模板,適用於構建專業的影視網站。
橫圖版 Demo:wn53.wntheme.com
直圖版 Demo:wn53p.wntheme.com
模板預覽
特點
支持橫圖與直圖兩種展示風格
響應式設計,適配各
文尼模板 第51套 v1.2.1 AI Maccms模板
模板介紹
這是一款基於 MacCMS V10 的影視模板,適用於構建專業的影視網站。
橫圖版 Demo:wn51.wntheme.com
直圖版 Demo:wn51p.wntheme.com
模板預覽
特點
支持橫圖與直圖兩種展示風格
響應式設計,適配各
文尼模板 第50套 v1.0.11 AI Maccms模板
模板介紹
這是一款基於 MacCMS V10 的暗色影視模板,適用於構建專業的影視網站。
橫圖版 Demo:wn50.wntheme.com
直圖版 Demo:wn50p.wntheme.com
文尼模板第50套首頁預覽
特點
第47套 v1.2.4 AI Maccms模板
模板介紹
「簡白影集」maccms模板是一款以白色、灰色與柔和圖片視覺為主的內容展示主題,整體風格乾淨清爽,版面結構分明,兼顧內容分類、輪播推薦、熱門排行與搜尋功能,特別適合用於影音資源、影視資訊、圖文文章與綜合內容型網站。這是一款基於 MacCMS V10 的影視模板,適用於構建風格簡潔、重視瀏
文尼模板 第43套 黑金影匯 v2.1.1 maccms模板
模板介紹
「黑金影匯」maccms模板是一款以黑色和黃色為主色調,展現現代感與專業性的內容展示主題。其清晰的模塊設計和強調分類的結構,使其特別適合用於影音資源、影評分享、排行榜展示等內容型網站。這是一款基於 MacCMS V10 的影視模板,適用於構建專業的影視網站。
橫圖版 Demo:
文尼模板 第20套 仿主播視頻 v2.0.6 maccms模板
模板介紹
「仿主播視頻」是文尼模板網推出的第 20 套影視網站模板,專為 MacCMS V10 打造,適用於構建各類影視資源展示網站。這款模板以簡潔直觀的設計風格,模仿主流主播視頻網站的佈局和交互體驗,使其特別適合短視頻站點、影視內容平台、直播回放網站等應用場景。無論是長視頻還是短視頻內容,都能夠
文尼模板 第26套 仿MISS視頻 v2.3.4 maccms模板
模板介紹
這是一款基於MacCMS V10的影視模板,仿制MISS視頻網站,適用於構建專業的影視網站。
橫圖版 Demo: wn26.wntheme.com
直圖版 Demo: wn26p.wntheme.com
特點
支持橫圖與直圖兩種展示風格
響應式設計,
文尼模板 第41套 黑色簡約 v2.3.1 maccms模板
模板介紹
這是一款基於MacCMS V10的影視模板,適用於構建專業的影視網站
橫圖版 Demo: wn41.wntheme.com
直圖版 Demo: wn41p.wntheme.com
特點
含主題後台
支持文章功能
響應式設計,適配各種設備
文尼模板 第39套 紅影簡視 v2.0.0 maccms模板
模板介紹
紅影簡視是一款以紅色為主題的簡約大氣影視模板,提供多維度的分類篩選功能,包括按時間、人氣、評分、劇情、地區和年份等篩選條件,方便用戶快速找到喜愛的影視內容。模板設計清晰直觀,圖片展示醒目,特別適合影視網站或多媒體內容平台使用。
橫圖版 Demo: wn39.wntheme.co
文尼模板 第40套 紅魅影視主題 v2.0.0 maccms模板
模板介紹
紅魅影視主題是一款以紅色為主色調的精美Maccms影視模板,設計風格簡潔大方,適合多種類型的影視網站。模板以熱播推薦為核心,結合直觀的分類導航,提供清晰的內容展示布局。同時,搭配高質感的圖片展示區,讓用戶在瀏覽影片時獲得最佳的視覺體驗。紅魅影視主題還支持排行榜模塊,便於用戶快速了解熱門影
文尼模板 第42套 電影先生 v2.1.3 maccms模板
模板介紹
「電影先生」是一款專為影評網站、電影資訊平台和個人影迷部落格設計的高質感主題。它提供極具電影氛圍的視覺設計,支援電影資料庫整合、評分系統、演職員介紹,以及動態評論區。該模板適用於發布最新影評、推薦電影、整理觀影清單,並支援響應式設計,確保在各種設備上都能提供流暢的使用體驗。
橫
我們的優勢
資源豐富,專業人員篩選上傳更新
更新及時
專人上傳,每天更新
精選資源
各類資源,滿足需求
高速下載
專屬網盤,極速體驗
365x7服務
專人客服,隨時聯系
783
總資源數
561
VIP資源數
1092
總用戶數
566


























