75 lines
1.7 KiB
PHP
75 lines
1.7 KiB
PHP
<?php
|
||
/**
|
||
* 项目提交前预处理脚本
|
||
* 用于安全备份并清理敏感配置字段
|
||
*/
|
||
|
||
$source = __DIR__ . '/config.php';
|
||
$backup = __DIR__ . '/config.backup.php';
|
||
|
||
// 1️⃣ 检查文件是否存在
|
||
if (!file_exists($source)) {
|
||
echo "❌ 找不到 config.php,跳过处理。\n";
|
||
exit(0);
|
||
}
|
||
|
||
// 2️⃣ 备份
|
||
copy($source, $backup);
|
||
echo "✅ 已备份到 config.backup.php\n";
|
||
|
||
// 3️⃣ 读取原配置
|
||
|
||
// 3️⃣ 读取配置
|
||
$options = [];
|
||
require $source; // 直接导入 $options
|
||
|
||
if (!isset($options) || !is_array($options)) {
|
||
echo "❌ config.php 中未定义 \$options 数组。\n";
|
||
exit(1);
|
||
}
|
||
|
||
// 4️⃣ 根据需求修改特定字段
|
||
// 举例:清空日志路径、设置默认workers、隐藏api_key
|
||
$fieldsToReset = [
|
||
'redis' => [
|
||
'ip'=>'127.0.0.1',
|
||
'port'=>6379,
|
||
'password'=>'YOURPASSWARD',
|
||
],
|
||
'db' => [
|
||
'type' => 'mysql',
|
||
'host' => '',
|
||
'database' => '',
|
||
'username' => '',
|
||
'password' => '',
|
||
'charset' => 'utf8mb4',
|
||
'collation' => 'utf8mb4_general_ci',
|
||
'port' => 3306,
|
||
],
|
||
'apikey'=>'',
|
||
];
|
||
|
||
// 应用修改
|
||
foreach ($fieldsToReset as $key => $value) {
|
||
if (array_key_exists($key, $options)) {
|
||
$options[$key] = $value;
|
||
}
|
||
}
|
||
// 5️⃣ 写回原文件(保持 $options = [...] 格式)
|
||
$export = var_export($options, true);
|
||
|
||
// 把 array(...) 替换成 [...]
|
||
$export = preg_replace(['/\barray \(/', '/\)(\s*[,;])?/'], ['[', ']$1'], $export);
|
||
|
||
// 构造完整内容
|
||
$content = <<<PHP
|
||
<?php
|
||
|
||
\$options = $export;
|
||
|
||
PHP;
|
||
|
||
// 写入文件
|
||
file_put_contents($source, $content);
|
||
|
||
echo "✅ config.php 已清理敏感信息,可安全提交。\n"; |