php中的配置文件

时间:2010-10-13 10:43:41

标签: php class function code-reuse

我想创建一个用户定义的配置文件,其中包含一些具有常量值的变量,现在我想在我的应用程序的许多页面中访问这些值。我可以使用函数使用这些变量。什么是最好的方法不使用类就可以做到这一点。

5 个答案:

答案 0 :(得分:2)

您可以在某处定义此文件并将其包含或要求。

require_once("path/to/file/config.php"); 

此文件中的所有变量均可在requires / includes脚本中访问。

或者你可以使用define as:

define("TEST", "10");    //TEST holds constant 10 

现在在所有大写中使用TEST将具有定义为的值。

另外,如果你希望它们在函数中可以访问,你有三个选项,在调用时将它们作为参数传递给函数,或者在函数中声明为全局函数。

//example 1
require_once("path/to/file/config.php"); 
function testFunction($var){
   echo $var." inside my function";   //echos contents of $var 
}

//now lets say a variable $test = 10; was defined in config.php
echo $test;    //displays "10" as it was defined in the config file.  all is good
testFunction($test);  //displays "10 inside my function" because $test was passed to function


//example 2
require_once("path/to/file/config.php"); 
function testFunction2(){
   global $test; 
   echo $test; //displays "10" as defined in config.php 
}

//example 3
define("TEST", "10");
echo TEST; // outputs "10"
//could have these constants defined in your config file as described and used above also! 

答案 1 :(得分:1)

如果没有类,可以使用define()创建基于用户的常量,以便在整个应用程序中使用。

修改 常量的命名约定都是大写字符。

示例:

define(DATE, date());

您可以通过调用:

在脚本中调用它
$date = DATE;

http://php.net/manual/en/function.define.php

或者,您可以将详细信息保存在$GLOBALS数组中。请记住,这不是完全安全的,因此请使用md5()存储密码或敏感数据。

答案 2 :(得分:1)

当你使用常量时,define()是有意义的,但你可以使用ini files作为替代。

答案 3 :(得分:0)

有几种方法可以做到这一点

答案 4 :(得分:0)

如果我有一个像 config.ini 这样的简单配置文件(可以是 htttp://example.com/config.ini 或 /etc/myapp/config.ini )

user=cacom
version = 2021608
status= true

这是我的功能:

function readFileConfig($UrlOrFilePath){

    $lines = file($UrlOrFilePath);
    $config = array();
    
    foreach ($lines as $l) {
        preg_match("/^(?P<key>.*)=(\s+)?(?P<value>.*)/", $l, $matches);
        if (isset($matches['key'])) {
            $config[trim($matches['key'])] = trim($matches['value']);
        }
    }

    return $config;
}