Я играл с php-классом, который я нашел в сети под названием Config Magik , который я использую для хранения некоторой информации в INI-файле, но недавно столкнулся с некоторыми проблемами при использовании removeKey.Я хотел знать, может ли кто-нибудь указать мне на подобный класс, который будет работать так же или лучше.Или, если есть лучший способ сделать это.
Это моя функция прямо сейчас, после игры с ней как сумасшедшей, так что она, вероятно, очень неисправна.
<code>require_once('class.ConfigMagik.php');
$config = new ConfigMagik('config.ini', true, true);
if(!empty($_GET)){
if(!is_writeable('config.ini')){
echo 'Could not write to config.ini';
return false;
}
//if there is no section parameter, we will not do anything.
if(!isset($_GET['section'])){
echo false; return false;
} else {
$section_name = $_GET['section'];
unset($_GET['section']); //Unset section so that we can use the GET variable to manipulate the other parameters in a foreach loop.
if (!empty($_GET)){
foreach ($_GET as $var => $value){
echo $var.'='.$_GET[$var].'<br />';
//Check if said variable $var exists in the section.
if($config->get($var, $section_name) !== NULL){
//Set variable value.
try{
$config->set($var, $value, $section_name);
echo 'Setting variable '. $var.' to '.$value.' on section '.$section_name;
} catch(Exception $e) {
echo 'Could not set variable '.$var;
echo $e;
return false;
}
} else {
echo $var.' does not exist <br />';
}
}
}
try{
$section = $config->get($section_name); //Get the entire section so that we can manipulate it.
echo '<pre>';print_r($section);echo '
';foreach ($ section как $ title => $ value) {if (! isset ($ _ GET [$ title]) && isset ($ section [$ title])) {try {$ config-> removeKey ($ title, $ section_name);echo '
'. $ title. ': удалено«;} catch (Exception $ e) {echo $ e;}}}} catch (Exception $ e) {echo $ e;} $ config-> save ();// echo $ config-> toString ('HTML');эхо верно;вернуть истину;}} else {RUN SOME HTML}
Он в основном сохраняет настройки, которые я передаю, из параметров GET, и, если эти параметры отсутствуют, он должен быть удален.Когда я доберусь до $ config-> removeKey ($ title, $ section_name);в последнем операторе catch catch он не будет сохранен автоматически (как и должно быть), поэтому я попытался запустить $ config-> save (), и у меня получился INI-файл, который везде имел section = array.Буду признателен за любые советы, так как последние несколько недель я изучаю PHP в Интернете, поэтому я считаю, что у меня есть пути.
Я определенно выделил проблему в часть $ config-> save (), просто не знаю, как ее решить.
Заранее спасибо.