最近想用php开发个简单的文章管理系统,主要是做一批垃圾采集站,目前网上的cms都太多功能了,导致修改个模板要很多文件,花费很多功夫。开始用thinkphp框架做,感觉还是麻烦,后来改用ci,做好了后台后又觉得不是很简洁
于是忠于狠下心来打算用原生的php开发一个,只有这样才最简洁。
其中遇到不少的问题,现在把一些关键技术点记录下来,都是找来的资料 一、配置文件读取
这个比较简单 config.php
--------------------------
<?php
return array(
'a' => 1,
'b' => 2,
'c' => 3,
);
?> getconfig.php
--------------------------
<?php
$config = require('config.php'); print_r($config);
?> 大家试一下,会发现$config变量里存储了config.php中的数组, 这就是运用了php可以把文件当作return函数的一种用法。 来个稍微复杂点的
config.php
--------------------------
<?php
return array(
'master'=>array(
'master_host'=>'1',
'master_name'=>'1',
'master_password'=>'1',
'master_port'=>'1',
'slave1'=>array(
'slave_host'=>'2',
'slave_name'=>'2',
'slave_password'=>'2',
'slave_port'=>'2',
),
'slave2'=>array(
'slave_host'=>'3',
'slave_name'=>'3',
'slave_password'=>'3',
'slave_port'=>'3',
),
),
'master1'=>array(
'master_host'=>'5',
'master_name'=>'5',
'master_password'=>'5',
'master_port'=>'5',
'slave1'=>array(
'slave_host'=>'6',
'slave_name'=>'6',
'slave_password'=>'6',
'slave_port'=>'6',
),
'slave2'=>array(
'slave_host'=>'7',
'slave_name'=>'7',
'slave_password'=>'7',
'slave_port'=>'7',
),
), );
getconfig.php
--------------------------
<?php
$config = require('config.php');
$config['db']['master']['host']= '';
$config['db']['master']['name']= '';
$config['db']['master']['password']= '';
$config['db']['master']['port']= '';
$config['db']['master']['slave1']['host']= '';
$config['db']['master']['slave1']['name']= '';
$config['db']['master']['slave1']['password']= '';
$config['db']['master']['slave1']['port']= '';
$config['db']['master']['slave2']['host']= '';
$config['db']['master']['slave2']['name']= '';
$config['db']['master']['slave2']['password']= '';
$config['db']['master']['slave2']['port']= '';

二、php 更新配置文件

$config_file="路径";
if(file_exists($config_file)){
$configs=include $config_file;
}else {
$configs=array();
}
$configs=array_merge($configs,$data);
$result = file_put_contents($config_file, "<?php\treturn " . var_export($configs, true) . ";");

  var_export:输出或返回一个变量的字符串表示

     此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。

     可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

另外一种写法

$path='路径';//写入路径
$file=include $path;
$res = array_merge($file, array('key'=>$rolling)); $str = '<?php return array(';
foreach ($res as $key => $value){
// '\'' 单引号转义
//$str .= '\''.$key.'\''.'=>'.'\''.$value.'\''.',';
if (is_array($value)){
$str.= '\''.$key.'\''.'=>array(';
foreach ($value as $k=>$v){
$str.='\''.$k.'\''.'=>'.'\''.$v.'\''.',';
}
$str.='),';
}else{
$str.='\''.$key.'\''.'=>'.'\''.$value.'\''.',';
}
};
$str .= '); ';
$upfile =file_put_contents($path, $str);//写入文件

php以数组做为配置文件的读取和写入操作的更多相关文章

  1. properties配置文件的读取和写入

    /** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...

  2. java文件创建、删除、读取、写入操作大全

    一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的 ...

  3. php读取文件里面的数组做为配置文件

    可能大家也都见过很多开源的产品,大多它们的配置文件都存放在一个单独的文件中,而这个文件里只存放了一个数组,其实这里运用了一个PHP的小技巧,就是可以将文件包含进来,并且赋值给一个变量,这个变量就具有了 ...

  4. MFC+mongodb+nodejs 数据库的读取与写入操作

    首先通过nodejs和mongodb建立后端服务器 一.在windows平台下启动mongodb服务器 1.进入mongodb的安装目录,并进去bin目录启动mongod 2.在d盘建立mongodb ...

  5. testbench的设计 文件读取和写入操作 源代码

    十大基本功之 testbench 1. 激励的产生 对于 testbench 而言,端口应当和被测试的 module 一一对应.端口分为 input,output 和 inout 类型产生激励信号的时 ...

  6. java===java基础学习(5)---文件读取,写入操作

    文件的写入读取有很多方法,今天学到的是Scanner和PrintWriter 文件读取 Scanner in = new Scanner(Paths.get("file.txt") ...

  7. 用Java实现对英文版《飘》的文件读取与写入操作

    从文件读入<飘>的英文版,并将结果输出到文件中 要求一: 实现对英文版<飘>的字母出现次数统计 package File; import java.io.FileInputSt ...

  8. 记-Golang日志文件读取及写入操作

    Golang语言的 os 包中OpenFile 函数,如下所示: func OpenFile(name string, flag int, perm FileMode) (*File, error) ...

  9. 表数据文件DBF的读取和写入操作

    import sys import csv import struct import datetime import decimal import itertools from cStringIO i ...

随机推荐

  1. Hbase集群部署

    1.安装Hadoop集群 这个之前已经写过 2.安装Zookeeper 这个之前也已经写过 3.下载hbase,放到master机器,解压 4.修改hbase-env.sh,添加Java地址 expo ...

  2. mysql免安装版配置+navicat测试

    好久之前就在mysql官网下载了mysql的包,但是一直没有安装.今天测试下. 下载好的mysql是一个zip压缩包,直接解压就可以了,然后改名为mysql,以免路径太复杂. 配置环境变量 把D:\A ...

  3. 初始HTML

    了解HTML 1.1       HTML的作用 HTML就是用来制作网页 1.2       什么是HTML HTML是英文HyperText Markup Language的首字母缩写,即超文本标 ...

  4. rabbitmq集群几个比较好的文章

    以下几个链接可作为搭建rabbitmq集群是的参考,个人觉得写的很详细很好 1.RabbitMQ 高可用集群搭建及电商平台使用经验总结 http://www.cnblogs.com/wangiqngp ...

  5. python_机器学习—sklearn_win_64-3.6安装&&测试

    下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 在之前numpy\scipy基础上,安装sklearn_win_64-3.6 pip install D ...

  6. C#预定义类型、引用类型

    一.预定义的值类型 一个字节(1Byte)=8位(8Bit) BitArarry类可以管理位Bit. 1.整型 所有的整形变量都能用十进制或十六进制表示:long a=0x12AB 对一个整形值如未指 ...

  7. U-Mail:邮件营销如何大量获取并筛选有效地址

    工欲善其事必先利其器,在所有的邮件推广中,最基础的工作就是收集到足够多的有效邮箱地址,俗话说韩信将兵多多益善,邮箱地址越多,也就意味着潜在的转化为消费者的数量众多,但是如果大量滥竽充数的地址被搜罗进来 ...

  8. Linux性能测试工具

    Linux性能测试工具 在测试中,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来关注某些地方,如内存.CPU等.在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说, ...

  9. BZOJ 1191 超级英雄Hero 二分图匹配

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1191 题目大意: 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主 ...

  10. Linux下的MBR分区

    MBR分区 下面讲一讲如何给一块新添加入服务器的硬盘做MBR分区,那么为什么叫做MBR分区呢?后面会讲 做MBR分区,使用系统自带的fdisk工具.先看一看什么是fdisk,在命令行输入“fdisk” ...