巧妙用PHP修改文件中变量的内容

在php中如果有个内容你不想用数据库存,存在变量内,但是你又想通过在页面中能修改它的值,可以用以下的办法:

先建立一个备份文件,用来做字符串查找的原文


1
2
3
4
5
6
7
8
9
10
<?php
//文件config_default.php
session_start();
define('TEE_SITE_URL', 'https://teegon.com/');
define('TEE_API_URL', 'https://api.teegon.com/');
//TEE_CLIENT_ID TEE_CLIENT_SECRET
$GLOBALS['_tiangong']['alipay']['domain']='[tiangong_value_domain]';
$GLOBALS['_tiangong']['alipay']['id']='[tiangong_value_id]';
$GLOBALS['_tiangong']['alipay']['key']='[tiangong_value_key]';
?>

下面是欲修改的文件内容:


1
2
3
4
5
6
7
8
9
<?php
session_start();
define('TEE_SITE_URL', 'https://teegon.com/');
define('TEE_API_URL', 'https://api.teegon.com/');
//TEE_CLIENT_ID TEE_CLIENT_SECRET
$GLOBALS['_tiangong']['defaul']['domain']='http://faka.xiaoqyun.com.cn';
$GLOBALS['_tiangong']['defaul']['id']='rti6y7oqtvyms5lqpqlbjf2d';
$GLOBALS['_tiangong']['defaul']['key']='rgyyaucihzbmgrjgf6ax6r57wy3rx6wn';
?>

正题来了,修改步骤如下:

(1)读取config_default.php文件内容,存到一个变量内;

(2)通过字符串替换将该变量内的相应想修改的内容替换掉,甚至变量名都可以改写;

(3)关键步骤到了,将修改后的变量的内容写到config.php中。

OK,完事了,省去了读取数据库的麻烦。
1
2
3
4
5
6
7
8
9
10
<?php
//$_POST['tiangong_id']、$_POST['tiangong_key']是从页面获取过来的
if(!empty($_POST['tiangong_id']) && !empty($_POST['tiangong_key'])){
$file=file_get_contents(dirname(dirname(__FILE__)) . "/pay/tiangong/config_default.php");
$file=str_replace("[tiangong_value_id]",$_POST['tiangong_id'],$file);//str_replace(find,replace,搜索范围)
$file=str_replace("[tiangong_value_key]",$_POST['tiangong_key'],$file);
$file=str_replace("[tiangong_value_domain]",$_POST['tiangong_domain'],$file);
$file=str_replace("alipay","defaul",$file);
file_put_contents(dirname(dirname(__FILE__)) . "/pay/tiangong/config.php",$file);
}

上面的代码是摘自我写的一个支付接口的网站。

热评文章