如何在用户发送值时创建 PHP 配置文件

  • 本文关键字:创建 PHP 配置文件 用户 php
  • 更新时间 :
  • 英文 :


我想知道是否有php可以在用户发送表单后编写配置文件(例如WordPress如何设置(

由于我想制作我的php项目安装文件,所以我需要编写一个ini文件(或php(,但我不知道具体怎么做。

那么我应该怎么做呢?因为告诉用户编辑php文件太奇怪了,因为他们可能不知道怎么做。

我尝试创建一个"ini"文件,但它只能读取,我不知道如何编写它。

这里有一个可以使用的类(正则表达式不是一个好主意!

class ConfigFileManager
{
    private $configFile = null;
    private $items = array();
    function __construct($file_address)
    {
        if(file_exists($file_address))
        {
            $this->configFile = $file_address;
            $this->parse();
        }
    }
    function __get($id) { return $this->items[ $id ]; }
    function __set($id,$v) { $this->items[ $id ] = $v; }
    function parse()
    {
        if($this->configFile != null)
        {
            $fh = fopen( $this->configFile, 'r' );
            while( $l = fgets( $fh ) )
            {
             if ( preg_match( '/^#/', $l ) == false )
             {
                preg_match( '/^(.*?)=(.*?)$/', $l, $found );
                if($found)
                $this->items[ trim($found[1]) ] = trim($found[2]);
             }
            }
            fclose( $fh );
        }
        else
        {
          $this->file_not_exist();
        }
    }
    function save()
    {
        if($this->configFile != null)
        {
            $nf = '';
            $fh = fopen( $this->configFile, 'r' );
            while( $l = fgets( $fh ) )
            {
                if ( preg_match( '/^#/', $l ) == false )
                {
                    preg_match( '/^(.*?)=(.*?)$/', $l, $found );
                    $nf .= $found[1]."=".$this->items[$found[1]]."n";
                }
                else
                {
                    $nf .= $l;
                }
            }
            fclose( $fh );
            copy( $this->configFile, $this->configFile.'.bak' );  //backup last configs
            $fh = fopen( $this->configFile, 'w' );
            fwrite( $fh, $nf );
            fclose( $fh );
        }
        else
        {
            $this->file_not_exist();
        }
    }
    private function file_not_exist()
    {
       //throw exception that you want
        echo "File Does Not Exist";
    }
}

如何使用此类的示例

    $config = new ConfigFileManager('configs/config.ini');  //opening file config.ini from configs directory  
    echo $config->Title;  //read  "Title" value which is equal to  "My App"  
    $config->Title = "Your App";  //changing value of "Title"  
    $config->save();  //save changes to config.ini easily

相关内容

  • 没有找到相关文章

最新更新