`
varsoft
  • 浏览: 2508348 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用PHP对配置文件进行修改

阅读更多

使用PHP对配置文件进行修改
文/ heiyeluren


今天做一个php web shell 程序的密码修改,就碰到问题了,我们的密码和程序是在同一个文件里的,如何做到无缝修改,并且不影响程序正常执行。
我程序的配置文件的格式是类似下面的形式:

/*================= 配置选项 ===================*/
//登陆用户和密码,请修改为自己的用户名和密码
$manage["user"] = "root";
$manage["pass"] = "123";
//本文件目前的名字,请正确填写,否则相关操作可能将无效
$manage["file"] = "./ps101.php";
/*================= 配置结束 ===================*/

我如何提取出 $manage['user'] = ''root''这样的值进行修改工作,因为文件比较大,代码很多,配置文件是在程序的头部分,首先想了个基本的思路是:

使用file()遍历整个文件,然后找到某个数组的值的字符串是:
$manage["user"] = "root";
然后,用exploade()来把 $manage["user"] = "";通过"="进行分割,放到两个数组然后把第二个值用更新后的值去替换
最后再把整个字符串重新写入到文件....

但是代码实现起来很困难,上网问高手,给了这么段代码:

$lines = file("config.php");
$count =sizeof($lines);
for($i=0; $i<$count; $i++){
$tmp = explode($lines[$i], '=');
if($tmp==null || sizeof($tmp)!=2)
continue;
if(trim($tmp[0])=='$manage["user"]'){
$lines[$i] = $tmp[0]."= ".$manage["user"];
break;
}
}
$str = implode($lines, "\r\n");
然后将$str写回到文件

确实,按照我的思路来的话,代码就应该是这样的,但是我去一执行,并不好使。

怎么半呢?想了半天,能不能通过正则表达式来做。
于是又考虑到 $manage[''user'']这样的形式在程序里出现的次数不多,也许能够通过正则替换来修改。
那么基本的思路就出来了,把所有的程序代码读进一个变量里,然后通过正则替换掉这个字符串里的相应内容,代码列出:

// 打开文件
$fp = fopen($manage["file"], 'r');
// 把文件读进$configfile
$configfile = fread($fp, filesize($manage["file"]));
fclose($fp);

// 通过正则替换来做
$configfile = preg_replace("/[$]manage\[\"user\"\]\s*\=\s*[\"'].*?[\"']/is", "\$manage[\"user\"] = \"$user_name\"", $configfile);
$configfile = preg_replace("/[$]manage\[\"pass\"\]\s*\=\s*[\"'].*?[\"']/is", "\$manage[\"pass\"] = \"$user_pass\"", $configfile);

// 把文件重新写回原来的地方
$fp = fopen($manage["file"], 'w');
fwrite($fp, trim($configfile));
fclose($fp);

于是我一试验,还真可以~~~~

写于 2004-12-24 02:00
祝大家圣诞节快乐!

分享到:
评论

相关推荐

    PHP使用正则动态修改配置文件

    本文将深入探讨如何使用PHP结合正则表达式来动态修改配置文件,这在日常开发和运维工作中非常实用。 首先,我们需要理解配置文件的含义。在软件系统中,配置文件通常用来存储应用的设置和参数,比如数据库连接信息...

    php相关配置文件下

    安装完成后,将扩展添加到PHP配置文件中,然后重启PHP服务使更改生效。 4. **Swoole**: Swoole是一个用于PHP的异步、并行、高性能的扩展,它可以提供TCP、UDP、HTTP、WebSocket等网络服务。安装Swoole同样使用...

    php配置文件

    PHP的配置文件对于理解和优化其工作方式至关重要。在本文中,我们将深入探讨PHP的配置资源以及详细的配置步骤。 首先,我们关注的是PHP的配置文件——`php.ini`。这个文件包含了PHP的所有设置,如变量、模块启用、...

    无敌服务器php配置文件

    在构建和管理一个高效、稳定的服务器环境中,PHP配置文件起着至关重要的作用。"无敌服务器php配置文件"可能指的是一个优化过的PHP配置设置,旨在提高服务器性能,增强安全性,并简化维护工作。以下是一些关于PHP配置...

    php.ini配置文件解析

    配置文件解析深度剖析 #### 引言 `php.ini` 文件是 PHP 运行环境的核心配置文件,其重要性不言而喻。本文将深入解析 `php.ini` 的组织方式、结构特点及关键配置项,帮助开发者更好地理解和优化 PHP 应用。 #### ...

    PHP配置文件详解.pdf

    ### PHP配置文件详解 #### 一、概览 在IT领域,尤其是Web开发中,PHP是一种广泛使用的服务器端脚本语言。PHP配置文件,通常命名为`php.ini`,是PHP运行环境的核心配置文件,它控制着PHP的行为和性能。本文将深入...

    apache2.2.6+php5.2.5+mysql的配置文件

    标题提及的"apache2.2.6+php5.2.5+mysql的配置文件"是指在特定版本的Apache HTTP Server和PHP环境中,如何进行配置以确保它们能与MySQL数据库服务协同工作。这些配置文件是系统运行的基础,决定了服务的性能、安全性...

    php+Apache 安装配置实践(+全套配置文件与安装文件)

    我们将利用提供的配置文件和安装文件,包括`php.ini`、`httpd.conf`以及`php-5.2.8-Win32.rar`。 首先,我们需要理解这两个软件的作用。PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,主要用于Web...

    php配置文件.rar

    在处理“php配置文件.rar”时,应确保备份原配置文件,以防止意外更改导致服务器出现问题。解压后,根据实际需求修改配置,然后重启PHP服务使改动生效。对于大型或复杂的网站,可能还需要结合其他方法,如.htaccess...

    php配置文件php.ini的配置指令详解.rar

    在使用新的PHP版本前,研究一下php.ini会有好处的。 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为'php.ini'。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC; 指明的...

    wamp配置文件

    PHP配置文件 除了Apache配置文件外,PHP的配置文件`php.ini`也是十分关键的。这个文件位于PHP安装目录下,通过修改其中的选项可以调整PHP的行为和性能。 - **路径**: `C:\wamp64\bin\php\php版本\php.ini` - **...

    PHP配置文件

    php配置文件,主要针对testlink的整合做了一些修改

    分布式配置文件

    来自于Apache服务器的.htaccess文件,它展示了如何使用重写引擎来路由请求到一个指定的脚本(如index.php),但这并非典型的分布式配置文件示例。然而,从这个例子中,我们可以看到配置文件如何影响Web服务器的行为...

    php_redis.dll for php5.4 ntf ( redis 和php扩展及php配置文件 )

    标题 "php_redis.dll for php5.4 ntf ( redis 和php扩展及php配置文件 )" 描述的是一个专为PHP 5.4版本编译的NTF(可能指的是NTFS文件系统)环境准备的Redis扩展。这个扩展使得PHP能够与Redis数据库进行交互,Redis...

    APACEH2.2+ PHP5.3.5+现成的配置文件

    因此,用户在使用这些配置时应进行适当修改,以确保系统的安全性。 6. **备注说明**: "备注说明.txt"可能是对整个包的详细解释,包括可能的注意事项、兼容性问题、使用提示或其他重要信息,应该仔细阅读。 7. **...

    php中配置文件操作 如config.php文件的读取修改等操作

    在本示例中,我们将探讨如何读取和修改名为`config.php`的配置文件。 首先,我们有两个核心函数:`getconfig`和`updateconfig`,它们分别用于获取和更新配置文件中的数据值。 `getconfig`函数的职责是读取指定配置...

    配置好的PHP.INI 不需要每次重新修改INI文件了

    配置好的PHP.INI文件 不需要每次重新修改INI文件了 只需更改PHP.INI中的PHP路径和IIS里进行配置就可 此版为PHP5.0

    sqlserver 文件配置

    可以使用环境变量或配置文件来存储这些信息。 通过以上步骤,你应该能够在WAMP环境中成功配置并连接到SQL Server数据库。请根据实际的服务器设置和项目需求调整相应的参数。记住,良好的数据库配置和管理是保证应用...

Global site tag (gtag.js) - Google Analytics