PHP 原生读写配置文件的工具函数实现

Dylan
Dylan
发布时间:2026-10-15 | 4人浏览过
原创

在使用小型 PHP 项目时,有时配置并不适合使用 JSON 或 INI 格式,而是直接编写在 .php 文件中。本文将提供一套自定义函数,用于安全地读取和修改这类配置文件中的特定参数。

原理说明

传统的配置文件通常由键值对组成。为了在不引入大型解析库的情况下进行操作,核心思路是:

  1. 获取内容:使用 file_get_contents 将配置文件全部内容加载到内存。
  2. 正则匹配:利用 preg_match 查找目标键(Key)所在的行,提取当前的值。
  3. 正则替换:利用 preg_replace 定位目标键,将旧值替换为新值。
  4. 写回文件:使用 file_put_contents 将修改后的全文覆盖原文件。

环境准备与注意事项

在执行任何文件写入操作前,请确保:

  • 权限检查:Web 服务器进程对用户有该配置文件的写权限(Write Permission)。
  • 备份机制:由于是直接覆写文件,建议在开发阶段先在本地测试,关键数据建议先备份原文件。
  • 文件格式规范:该方法假设配置文件遵循如下简单的键值对格式:
<?php 
$name = "admin";
$port = '8080';
$db_count = 10;
?

操作步骤

第1步:创建读取函数 get_config

目的:根据键名从 PHP 配置文件中提取对应的值。

逻辑:

  1. 首先校验文件是否存在,不存在则返回 false。
  2. 读取文件内容。
  3. 根据传入的 $type 参数决定匹配规则:
    • 若为 string,分别尝试匹配双引号 "value" 或单引号 'value' 包裹的内容。
    • 若为 int,直接匹配等号与分号之间的数值。
/**
 * 获取配置文件中的指定变量值
 *
 * @param string $file 配置文件路径
 * @param string $ini  变量名 (Key)
 * @param string $type 数据类型: 'string' 或 'int'
 * @return mixed       成功返回值,失败返回 false
 */
function get_config($file, $ini, $type = "string") {
    if (!file_exists($file)) return false;
    
    $str = file_get_contents($file);
    // 使用 preg_quote 转义特殊字符,防止变量名包含正则关键字
    $escapedIni = preg_quote($ini, '/');
    
    if ($type == "int") {
        // 匹配整数: $key = value;
        if (preg_match("/".$escapedIni."=(.*);/", $str, $res)) {
            return $res[1];
        }
    } else {
        // 匹配字符串: $key = "value"; 或 $key = 'value';
        if (preg_match("/".$escapedIni."\
相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表