3 回答
TA贡献1998条经验 获得超6个赞
建议使用某种结构化文件格式来实现此目的。
考虑使用CSV,Ini,XML,JSON或YAML,并使用适当的API来读取和写入它们。
另一种方法是将配置存储在一个数组中,然后使用serialize / unserialize或使用var_export / include来使用它。
非常基本的例子:
class MyConfig
{
public static function read($filename)
{
$config = include $filename;
return $config;
}
public static function write($filename, array $config)
{
$config = var_export($config, true);
file_put_contents($filename, "<?php return $config ;");
}
}
你可以使用这样的类:
MyConfig::write('conf1.txt', array( 'setting_1' => 'foo' ));
$config = MyConfig::read('conf1.txt');
$config['setting_1'] = 'bar';
$config['setting_2'] = 'baz';
MyConfig::write('conf1.txt', $config);
TA贡献1810条经验 获得超4个赞
使用SQLite。然后,您可以查询特定数据,并且仍然具有本地文件。仅供参考 - PDO报价会自动在值周围添加单引号。
$Filename = "MyDB.db";
try {
$SQLHandle = new PDO("sqlite:".$Filename);
}
catch(PDOException $e) {
echo $e->getMessage()." :: ".$Filename;
}
$SQLHandle->exec("CREATE TABLE IF NOT EXISTS MyTable (ID INTEGER PRIMARY KEY, MyColumn TEXT)");
$SQLHandle->beginTransaction();
$SQLHandle->exec("INSERT INTO MyTable (MyColumn) VALUES (".$SQLHandle->quote("MyValue").")");
$SQLHandle->exec("INSERT INTO MyTable (MyColumn) VALUES (".$SQLHandle->quote("MyValue 2").")");
$SQLHandle->commit();
$Iterator = $SQLHandle->query("SELECT * FROM MyTable ORDER BY MyColumn ASC");
unset($SQLHandle);
foreach($Iterator as $Row) {
echo $Row["MyColumn"]."\n";
}
TA贡献1744条经验 获得超4个赞
我同意戈登的观点。
如果你不遵循他的建议你可以做这样的事情:
$file = file_get_contents('./conf.tpl');
$file = str_replace('%server%', 'localhost', $file);
file_put_contents('./conf.txt', $file);
- 3 回答
- 0 关注
- 362 浏览
添加回答
举报