如何使用php创建.php文件?

14

我想要做的是制作一个安装文件,让用户在PHP系统安装的第一步中输入数据库、用户名、密码和主机信息。


3
参考:PHP:文件系统函数 - Pekka
http://php.net/function.fwrite - Karoly Horvath
1
@yi_H - 你能提供一个简介或使用示例吗?最好是与OP的问题相关的一个。 - user212218
3个回答

18

这与创建其他文件相同,只需添加扩展名.php

$fp=fopen('filename.php','w');
fwrite($fp, 'data to be written');
fclose($fp);

1
谢谢,但是如何在编写.php页面时使用表单输入:例如,当用户输入数据库名称时,应该在我们要创建的config.php文件中使用它。是否可以在fwrite函数中使用$database = $_POST ['database'];? - Mohamed Said

13

很简单,就像其他人提到的那样,只需编写一个php扩展名的文件即可。

但我更愿意编写一个ini文件来存储配置数据,并稍后使用parse_ini_file加载它们。

更新: 这里是一个示例:

<?php
$config = array(
    "database" => "test",
    "user"     => "testUser"
);

function writeConfig( $filename, $config ) {
    $fh = fopen($filename, "w");
    if (!is_resource($fh)) {
        return false;
    }
    foreach ($config as $key => $value) {
        fwrite($fh, sprintf("%s = %s\n", $key, $value));
    }
    fclose($fh);

    return true;
}

function readConfig( $filename ) {
    return parse_ini_file($filename, false, INI_SCANNER_NORMAL);
}

var_dump(writeConfig("test.ini", $config));
var_dump(readConfig("test.ini"));

请问您能否告诉我更多关于这个问题?我该如何创建一个安装程序来使用(编写ini文件)创建配置文件? - Mohamed Said
1
我添加了一个示例,但它只是一个简单的示例,没有太多的错误处理。如果您有带空格的参数,则需要在sprintf中进行转义。 - KARASZI István
我尝试过了,但出现了一个错误:警告:parse_ini_file()的参数计数错误。另外,我该如何使用表单输入来创建配置文件,并且如何读取配置文件以便能够在网站上的每个页面上连接到数据库? - Mohamed Said
如果你的PHP版本低于5.3.0,只需修改parse_ini_file函数调用并删除最后一个参数。 - KARASZI István
1
在每个请求中,您需要加载ini文件。但是您需要学习基础知识。 - KARASZI István

2

我知道这是一个老话题,但我有一个解决方案:

installer.php:

<?php

class Installer {

    public $options;

    public function __construct( $arr=array() ){

        $this->options = $arr;

    }

    public function put( $key, $value ){

        $this->options[$key] = $value;

    }

    public function convertOptions(){

        $arr = $this->options;
        $data = "<?php\n\n";

        foreach( $arr as $key => $value ){

            $data .= "define( '" . $key . "', '" . $value . "' );";
            $data .= "\n\n";

        }

        return $data;

    }

    public function install( $filename, $dir='' ){

        if( file_put_contents( $dir . $filename, $this->convertOptions() ) ){

            return true;

        }

        return false;

    }

}

anotherFile.php:


require_once installer.php;

$installer = new Installer();

$installer->put( 'DB_NAME', 'example' );
$installer->put( 'DB_USER', 'root' );
$installer->put( 'DB_PASS', '' );

$installer->install( 'config.php' );

创建了config.php文件:

<?php

define( 'DB_NAME', 'example' );

define( 'DB_USER', 'root' );

define( 'DB_PASS', '' );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接