| 网站首页 | 平板电脑 | 台式电脑 | 笔记本电脑 | 电脑故障 | 电脑系统 | 电脑软件 | 电脑游戏 | 电脑主题 | 电脑编程 | 电脑术语 | 电脑知识 | 智能手机 | 
最新公告:     电脑指南网指引你如何选购平板电脑,笔记本电脑,电脑出现故障怎么办,教你怎么重装系统,电脑要怎么安装应用软件和更换主题等,电脑知识尽在电脑指南网!!  [admin  2014-11-10]            各位电脑学者!最新最全的电脑知识尽在--电脑教程网!! 学习电脑时有不懂的,您可以收藏本网站天天浏览电脑教程网学习!!  [电脑教程  2013-12-01]        
电脑网 电脑网
电脑网 您现在的位置: 电脑指南网 >> 电脑编程 >> 编程语言 >> PHP语言 >> 正文
电脑网 电脑编程专题 电脑网
电脑网 更多内容 电脑网
电脑网 PHP语言最新更新 电脑网
普通文章 php编辑器哪个好热点文章
推荐文章 php编辑器推荐
推荐文章 怎么配置PHP编译环境热点文章
普通文章 EclipsePHP Studio的下载与安装热点文章
推荐文章 grep在linux操作系统php开发中的
普通文章 织梦CMS系统使用教程热点文章
普通文章 PHP数据类型热点文章
普通文章 PHP环境搭建:Apache的下载安装热点文章
推荐文章 PHP应用程序配置模式
推荐文章 PHP基本语法格式
电脑网 更多内容 电脑网
电脑网 栏目导航 电脑网
编程语言
java语言 | C语言 | JavaScript语言
PHP语言
网页编程
脚本编程
数据库
电脑网 更多内容 电脑网
电脑网 电脑软件 电脑网
普通文章 百度云os设置在状态栏显示网速的
普通文章 百度云加速怎么刷新网站缓存
普通文章 用百度云下载BT文件怎么下载
普通文章 百度云观测如何使用
普通文章 百度云管家下载文件失败
普通文章 百度云系统如何裁剪歌曲做铃声
推荐文章 百度云如何给分享文件设置密码
推荐文章 百度浏览器怎么添加百度云收藏
电脑网 更多内容 电脑网
电脑网 电脑游戏 电脑网
普通文章 剑灵激活码怎么弄
普通文章 剑灵伙伴是怎样搭配命格的
普通文章 剑灵形象保存及捏脸数据怎么导入
普通文章 指令大全 剑灵怎么跳舞
普通文章 剑灵的客户端(剑灵最新的安装包
普通文章 如何具体兑换剑士秘典二篇秘籍修
普通文章 剑灵怎么升到45级洪门一星
普通文章 洪门秘籍 剑灵如何补刀
电脑网 更多内容 电脑网
电脑网 电脑故障 电脑网
普通文章 u大师制作u盘启动盘操作失败提示
普通文章 鼠标被禁用了怎么办
普通文章 笔记本电脑不能正常关机怎么回事
推荐文章 插两根内存开不了机无法进入系统热点文章
推荐文章 内存条金手指烧毁了怎么修复热点文章
推荐文章 “0x7c84c3e3”指令引用的“0x6e热点文章
推荐文章 电脑每次开机都要重新插拔内存条热点文章
推荐文章 开机提示memory size decreased错热点文章
电脑网 更多内容 电脑网
电脑网 PHP应用程序配置模式

PHP应用程序配置模式

作者:pc.zx98.com 来源:互联网 标签:php教程 点击数:        ★★★★
 

php应用程序配置模式

  本文展示了几种用于存储配置设置及编辑这些设置的技术。另外,文中也为哪些元素需要设为可配置以及如何避免陷入配置过度或者配置不足的困境提供了指导。

使用
ini 文件进行配置


  php 内建了对配置文件的支持。这是通过 php.ini 文件这样的初始化文件(ini)机制实现的,在 php.ini
文件中定义了数据库连接超时或会话如何存储等常量。如果愿意的话,可以在这个 php.ini 文件中为应用程序定制配置。为了说明,我将下列代码行添加到
php.ini 文件中。

myapptempdir=foo


  然后,我编写了一个小 php 脚本来读取这个配置项,如清单 1 所示。

清单
1. ini1.php

<?php

function
get_template_directory()

{


$v = get_cfg_var( "myapptempdir" );


return ( $v == null ) ? "tempdir" : $v;

}

echo(
get_template_directory()."\n" );

?>

当在命令行中运行这段代码时,得到如下结果:

%
php ini1.php

foo

%


  太棒了。PC.ZX98.COM但为什么不能用标准的 ini 函数来获取 myapptempdir
配置项的值呢?我研究了一下,发现在大多数情况下,定制配置项不能使用这些方法来获取。然而,使用 get_cfg_var 函数却是可以访问的。


  为使这个方法更加简单,将对变量的访问封装在第二个函数中,该函数使用配置键名及一个缺省值作为参数,如下所示。

清单
2. ini2.php

function
get_ini_value( $n, $dv )

{


$c = get_cfg_var( $n );


return ( $c == null ) ? $dv : $c;

}

function
get_template_directory()

{


return get_ini_value( "myapptempdir", "tempdir" );

}


  这是对如何访问 ini 文件的一个很好的概括,所以,如果要使用一个不同的机制或将这个 ini
文件存储到其他位置,就不需要为更改大量的函数而大费周折。


  我不推荐使用 ini 文件作为应用程序的配置,这有两个理由。首先,虽然这样做较容易读取 ini 文件,但却几乎不可能安全地写 ini
文件。所以这样做只适合于只读配置项。第二,php.ini 文件在服务器的所有应用程序上共享,所以我认为特定于应用程序的配置项不应该写在该文件中。


  需要对 ini 文件了解什么呢?最重要的是如何重置 include 路径来添加配置项,如下所示。

清单
3. ini3.php

<?php

echo(
ini_get("include_path")."\n" );

ini_set("include_path",


      ini_get("include_path").":./mylib" );

echo(
ini_get("include_path")."\n" );

?>


  在本例中,我将我的本地 mylib 目录添加到了 include 路径中,所以能够从该目录中 require php 文件,而不需要将该路径添加到
require 语句中。

php
中的配置


  通常对于在 ini 文件中存储配置条目的一个替代办法是使用一个简单的 php 脚本来保持数据。如下是一个样例。

清单
4. config.php

<?php

#
specify the location of the temporary directory

#

$template_directory
= "tempdir";

?>

使用该常量的代码如下所示。

清单
5. php.php

<?php

require_once
"config.php";

function
get_template_directory()

{


global $template_directory;


return $template_directory;

}

echo(
get_template_directory()."\n" );

?>


  该代码首先包含配置文件(config.php),接着就可以直接使用这些常量了。


  使用这项技术有很多优势。首先,如果某些人仅仅浏览 config.php 文件,该页面是空白的。所以可以将 config.php 放到相同的文件中,并作为
web 应用程序的根。第二,在任何编辑器中都可编辑,并且在一些编辑器中甚至具备语法着色及语法检查功能。


  这项技术的缺点是,这是一个像 ini 文件一样的只读技术。将数据从此文件中提取出来是轻而易举的,但在该 php
文件中调整数据却很困难,在一些情况下甚至是不可能的。


  下面的替代方法显示了如何编写在本质上既可读又可写的配置系统。

文本文件


  前面的两个例子对于只读配置条目都是合适的,但对于既读又写的配置参数来说又如何呢?首先,看看清单 6 中的文本配置文件。

清单
6. config.txt

#
my application"s configuration file

title=my
app

templatedirectory=tempdir


  这是同 ini 文件相同的文件格式,但我自己编写了辅助工具。为此,我创建了自己的 configuration 类,如下所示。

清单
7. text1.php

<?php

class
configuration

{


private $configfile = "config.txt";


private $items = array();


function __construct() { $this->parse(); }


function __get($id) { return $this->items[ $id ]; }


function parse()


{


  $fh = fopen( $this->configfile, "r" );


  while( $l = fgets( $fh ) )


  {


    if ( preg_match( "/^#/", $l ) == false )


    {


      preg_match( "/^(.*?)=(.*?)$/", $l, $found );


      $this->items[ $found[1] ] = $found[2];


    }


  }


  fclose( $fh );


}

}

$c
= new configuration();

echo(
$c->templatedirectory."\n" );

?>


 

更多关注:php教程

PHP语言栏目电脑编程频道返回首页
  • 上一篇文章:

  • 下一篇文章:
  • 电脑网 PHP语言相关文章 更多内容 电脑网
    [PHP语言]php编辑器哪个好
    [PHP语言]php编辑器推荐
    [PHP语言]怎么配置PHP编译环境
    [PHP语言]EclipsePHP Studio的下载与安装
    [PHP语言]grep在linux操作系统php开发中的怎么使
    [PHP语言]织梦CMS系统使用教程
    [PHP语言]PHP数据类型
    [PHP语言]PHP环境搭建:Apache的下载安装
    [PHP语言]PHP基本语法格式
    [PHP语言]PHP Session设置
    电脑网 电脑网 电脑网

    php编辑器推荐

    怎么配置PHP编译环境

    EclipsePHP Studio的下

    grep在linux操作系统p
    图片 PHP语言最新推荐 更多>> 图片
     [PHP语言]php编辑器推荐
     [PHP语言]怎么配置PHP编译环境
     [PHP语言]grep在linux操作系统php开发中
     [PHP语言]PHP应用程序配置模式
     [PHP语言]PHP基本语法格式
     [PHP语言]PHP Session设置
     [PHP语言]PHP基本入门教程(数组)
     [PHP语言]PHP如何输出九九乘法表
     [PHP语言]wordpress3.5链接管理功能没有
    图片 图片
    图片 电脑编程推荐 更多>> 图片
    推荐文章 [数据库]SQL数据库怎么导入导出数据热点文章
    推荐文章 [C语言]怎么用C语言编写一个程序向爱的人热点文章
    推荐文章 [编程语言]编程语言有哪些热点文章
    推荐文章 [数据库]开启SQL数据库服务的方法热点文章
    推荐文章 [网页编程]php语言的特点热点文章
    推荐文章 [编程语言]现在学哪种编程语言比较有前途热点文章
    推荐文章 [数据库]visio画数据库模型图怎么用热点文章
    推荐文章 [编程语言]哪种编程语言最好学热点文章
    推荐文章 [java语言]Java Web项目更改项目名后报错怎热点文章
    推荐文章 [脚本编程]Linux系统编怎么写shell脚本热点文章
    图片 图片

    裴紫绮美女模特电脑主

    气质美女免费电脑主题

    杉原杏璃电脑桌面壁纸

    美女桌面清新白裙壁纸
     网友评论: 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

    | 本站简介 | 加入收藏 | 联系站长 | 本站友链 | 申请友链 | 版权申明 | 返回首页 |

    声明:文章部分来源网络,转载请标明出处!
    网站备案号:粤ICP备12041130号
    您身边的最好的电脑指南网!
    网站站长:QQ:1141452800