net*_*rox 44 php configuration ini
我找不到一种方法可以轻松地创建一个新文件,将其视为ini文件(不是php.ini或simiilar ......为每个用户提供单独的ini文件),并使用PHP创建/删除值.PHP似乎没有提供创建ini文件和读/写/删除值的简单方法.到目前为止,它只是"读取" - 没有关于创建条目或操纵键/值.
Har*_*rak 53
从PHP文档的注释中找到以下代码片段:
function write_ini_file($assoc_arr, $path, $has_sections=FALSE) {
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key=>$elem) {
$content .= "[".$key."]\n";
foreach ($elem as $key2=>$elem2) {
if(is_array($elem2))
{
for($i=0;$i<count($elem2);$i++)
{
$content .= $key2."[] = \"".$elem2[$i]."\"\n";
}
}
else if($elem2=="") $content .= $key2." = \n";
else $content .= $key2." = \"".$elem2."\"\n";
}
}
}
else {
foreach ($assoc_arr as $key=>$elem) {
if(is_array($elem))
{
for($i=0;$i<count($elem);$i++)
{
$content .= $key."[] = \"".$elem[$i]."\"\n";
}
}
else if($elem=="") $content .= $key." = \n";
else $content .= $key." = \"".$elem."\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
Run Code Online (Sandbox Code Playgroud)
用法:
$sampleData = array(
'first' => array(
'first-1' => 1,
'first-2' => 2,
'first-3' => 3,
'first-4' => 4,
'first-5' => 5,
),
'second' => array(
'second-1' => 1,
'second-2' => 2,
'second-3' => 3,
'second-4' => 4,
'second-5' => 5,
));
write_ini_file($sampleData, './data.ini', true);
Run Code Online (Sandbox Code Playgroud)
祝好运!
我不能保证它的工作有多好,但是有一些建议可以在文档页面上实现相反的parse_ini_file()(即write_ini_file,不是标准的PHP函数)parse_ini_file.
您可以使用write_ini_file将值发送到文件,parse_ini_file将其读回 - 修改parse_ini_file返回的关联数组,然后将修改后的数组写回文件write_ini_file.
那对你有用吗?
PEAR有两个(经过单元测试的)软件包,可以完成您渴望的任务:
.ini文件,这是理想的选择.php和.xml文件我宁愿使用经过良好测试的代码而不是编写自己的代码.
小智 5
在这部分代码中:
else {
foreach ($assoc_arr as $key=>$elem) {
if(is_array($elem))
{
for($i=0;$i<count($elem);$i++)
{
$content .= $key2."[] = \"".$elem[$i]."\"\n";
}
}
else if($elem=="") $content .= $key2." = \n";
else $content .= $key2." = \"".$elem."\"\n";
}
}
Run Code Online (Sandbox Code Playgroud)
$ key2必须用$ key替换,否则你会在.ini中找到空键