红穆笔记
首頁 語言筆記 PHP文件批量添加頭部配置
語言筆記 PHP

PHP文件批量添加頭部配置

PHP文件批量添加头部配置

20251209140903622-image

好用愛用

<?php
// 安全提示:建議在測試環境中先運行,備份重要文件
echo "<h3>PHP文件批量添加頭部配置</h3>";

// 檢查是否有確認參數
if (isset($_GET['confirm']) && $_GET['confirm'] == 'yes') {
    addConfigToPhpFiles();
} else {
    showWarning();
}

function showWarning() {
    echo "<div style='background-color:#fff3cd; border:1px solid #ffeaa7; padding:15px; margin:20px; border-radius:5px;'>";
    echo "<h4>⚠️ 安全警告</h4>";
    echo "<p>此腳本將執行以下操作:</p>";
    echo "<ol>";
    echo "<li>遞歸掃描當前目錄及其所有子目錄</li>";
    echo "<li>查找所有 .php 文件</li>";
    echo "<li>在每個PHP文件的開頭添加 <code>&lt;?php require_once '../admin/config.php';?&gt;</code></li>";
    echo "</ol>";
    echo "<p style='color:#d63031; font-weight:bold;'>注意:此操作不可逆,請確保已備份重要文件!</p>";
    echo "<br>";
    echo "<a href='?confirm=yes' style='background-color:#e74c3c; color:white; padding:10px 20px; text-decoration:none; border-radius:4px;'>確認執行添加配置</a>";
    echo "&nbsp;&nbsp;";
    echo "<a href='?' style='background-color:#95a5a6; color:white; padding:10px 20px; text-decoration:none; border-radius:4px;'>取消</a>";
    echo "</div>";
}

function addConfigToPhpFiles() {
    $baseDir = __DIR__; // 當前目錄(根目錄)
    $configCode = "<?php require_once '../admin/config.php';?>\n";
    $count = 0;
    $errors = 0;
    $skipped = 0;
    
    echo "<div style='background-color:#d4edda; border:1px solid #c3e6cb; padding:15px; margin:20px; border-radius:5px;'>";
    echo "<h4>正在執行添加配置操作...</h4>";
    echo "<p>要添加的配置代碼: <code>" . htmlspecialchars($configCode) . "</code></p>";
    
    // 使用遞歸迭代器遍歷所有目錄
    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($baseDir, RecursiveDirectoryIterator::SKIP_DOTS),
        RecursiveIteratorIterator::SELF_FIRST
    );
    
    foreach ($iterator as $file) {
        // 檢查是否是.php文件
        if ($file->isFile() && strtolower($file->getExtension()) === 'php') {
            $filePath = $file->getPathname();
            $fileName = $file->getFilename();
            
            // 跳過當前腳本自身
            if ($fileName === basename(__FILE__)) {
                continue;
            }
            
            // 跳過admin目錄下的config.php文件
            if (strpos($filePath, '/admin/config.php') !== false || 
                strpos($filePath, '\\admin\\config.php') !== false) {
                continue;
            }
            
            echo "<p>處理文件: " . htmlspecialchars($filePath) . "</p>";
            
            // 讀取文件內容
            $content = file_get_contents($filePath);
            if ($content === false) {
                echo "<p style='color:#c0392b;'>錯誤: 無法讀取文件 " . htmlspecialchars($filePath) . "</p>";
                $errors++;
                continue;
            }
            
            // 檢查是否已經包含配置代碼
            if (strpos($content, "require_once '/admin/config.php';") !== false) {
                echo "<p style='color:#f39c12;'>跳過: 文件已包含配置代碼</p>";
                $skipped++;
                continue;
            }
            
            // 檢查文件是否已經有PHP開放標籤
            $hasOpeningTag = (strpos($content, '<?php') !== false);
            
            // 準備新內容
            $newContent = $configCode . $content;
            
            // 如果文件沒有PHP開放標籤但我們的配置代碼添加了,這沒問題
            // 如果文件已經有PHP開放標籤,我們只需要在開頭添加配置代碼
            
            // 寫入文件
            if (file_put_contents($filePath, $newContent) !== false) {
                echo "<p style='color:#27ae60;'>成功: 已添加配置代碼</p>";
                $count++;
            } else {
                echo "<p style='color:#c0392b;'>錯誤: 無法寫入文件 " . htmlspecialchars($filePath) . "</p>";
                $errors++;
            }
        }
    }
    
    echo "<hr>";
    echo "<h4>操作完成!</h4>";
    echo "<p>成功添加配置: <strong>{$count}</strong> 個文件</p>";
    echo "<p>跳過已包含配置: <strong>{$skipped}</strong> 個文件</p>";
    echo "<p>遇到錯誤: <strong>{$errors}</strong> 個文件</p>";
    echo "<p><a href='?'>返回</a></p>";
    echo "</div>";
}

// 顯示當前目錄信息
echo "<div style='background-color:#e9ecef; padding:10px; margin:10px 0; border-radius:4px;'>";
echo "<p><strong>當前目錄:</strong> " . htmlspecialchars(__DIR__) . "</p>";
echo "<p><strong>配置路徑:</strong> /admin/config.php</p>";
echo "</div>";
?>

 

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:&lt;?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

中英双语户外篷房帐篷睡袋网站模板 1074

中英雙語戶外篷房帳篷睡袋網站模板 1074 實用收藏 易優模板

此套eyoucms中英雙語模板適用於戶外篷房、帳篷與睡袋類企業,設計風格國際戶外,能夠展示戶外裝備產品、帳篷睡袋及出口優勢。有助於戶外用品外貿企業在全球市場上展示品牌。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 61
(自适应手机端)酒店民宿网站pbootcms模板 客房旅馆网站源码下载 0491

(自適應手機端)酒店民宿網站pbootcms模板 客房旅館網站源碼下載 0491 實用收藏 pbootcms模板

一款適用於酒店民宿與客房旅館行業的PbootCMS網站模板,支持PC與WAP端。設計風格溫馨舒適,能夠展示酒店環境、房型設施及在線預訂服務。有助於民宿或酒店在線上吸引遊客,提升品牌知名度。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5…
👁 53
响应式瑜伽培训瑜伽用品网站模板 0471

響應式瑜伽培訓瑜伽用品網站模板 0471 實用收藏 易優模板

一款針對瑜伽培訓與瑜伽用品行業的eyoucms響應式網站模板。設計風格健康舒適,能夠展示瑜伽課程、培訓項目、瑜伽用品、師資力量及教學環境。有助於瑜伽品牌在線上吸引學員,提升品牌知名度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問…
👁 26
响应式中英双语建材展销网站模板 1075

響應式中英雙語建材展銷網站模板 1075 實用收藏 易優模板

一款針對中英雙語建材展銷行業的eyoucms響應式網站模板。設計風格國際專業,能夠展示建材產品、出口優勢、工程案例及品牌形象。多語言支持有助於建材企業在全球市場上進行品牌推廣。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易…
👁 44
(自适应手机端)HTML5智能设备pbootcms网站模板 响应式人工智能机器网站源码下载 0492

(自適應手機端)HTML5智能設備pbootcms網站模板 響應式人工智能機器網站源碼下載 0492 實用收藏 pbootcms模板

一款針對智能設備與人工智能機器人的PbootCMS響應式網站模板,支持PC與WAP端。設計風格科技未來感,適合展示AI產品、智能硬件及技術解決方案。有助於智能科技企業在線上樹立前沿品牌形象。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s…
👁 48