php如何修改常量

php修改常量的方法:可以利用正则表达式的方式进行常量的修改。要使用正则表达式的方式,我们需要借助preg_replace()函数,该函数用于执行一个正则表达式的搜索与替换。

我们可以使用正则替换的方式进行常量的修改,这是最为简单方便的。

(推荐教程:php教程)

函数介绍:

preg_replace 函数执行一个正则表达式的搜索和替换。

函数语法:

mixed preg_replace(mixed $pattern , mixed $replacement, mixed $subject[, int $limit = -1[, int &$count]])

参数说明:

$pattern: 要搜索的模式,可以是字符串或一个字符串数组。

$replacement: 用于替换的字符串或字符串数组。

$subject: 要搜索替换的目标字符串或字符串数组。

$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

$count: 可选,为替换执行的次数。

返回值:

如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。如果匹配被查找到,替换后的 subject 被返回,其他情况下返回没有改变的 subject。如果发生错误,返回 NULL。

代码实现:

/*
    @param 常量文件
    @param 修改数组(常量名=>常量值)
    @return 失败返回false  成功修改常量文件
    */
    function constEdit($file, $arr)
    {
        $info = file_get_contents($file);
        foreach ($arr as $k => $v) {
            $info = preg_replace("/define\\(\\"{$k}\\",\\".*?\\"\\)/", "define(\\"{$k}\\",\\"{$v}\\")", $info);
        }
        return file_put_contents($file, $info);
    }

使用此方法我们只需传入对应的常量文件位置和修改的数组即可。

应用场景:

<form action="action.php" method="post">
    <input name="HOST" type="text" />
    <input name="DBNAME" type="text" />
    <input type="submit" value="修改"/>
</form>

此时在action.php页面只需接收$_POST 这个完整数组传入到方法中即可。

需要注意的是定义常量需使用双引号如:

define("HOST","127.0.0.1");
define("DBNAME","mysql");

其次,常量的名字应该与表单中的name名字对应。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注