есть функция
function UpdCfg($newVars, $dir)
{
$cfgFile = implode("",file($dir));
$i = 0;
while(true)
{
foreach(array_slice($newVars,$i,1) as $varName => $newVar)
{
$preg = "/\\".$varName."\040=\040\"[^\n]*\";/";
$cfgFile = preg_replace($preg,$varName." = \"".$newVar."\";",$cfgFile);
}
if($i == count($newVars)-1)break;
$i++;
}
$fp = fopen($dir,"w");
fputs($fp,$cfgFile);
fclose($fp);
}
работает она так, и очень хорошо работает
$newVars = array('$con_st' => intval($_POST['stat']));
UpdCfg($newVars,'ads/config.php');
но что надо делать что бы она работала с переменными такого вида $price['banner']
$newVars = array('$price['banner']' => intval($_POST['bnprice']));
UpdCfg($newVars,'ads/config.php');
если так использовать то она не хочет работать то есть не сохраняет ничего
Спустя 19 минут, 2 секунды (25.01.2012 - 18:12) Alehandr написал(а):
Код в следующей месаге...
Удалил, ибо много места занимает... =)
Удалил, ибо много места занимает... =)
Спустя 1 минута, 3 секунды (25.01.2012 - 18:13) okapo написал(а):
Можно пример работы ?
Спустя 2 минуты, 6 секунд (25.01.2012 - 18:15) Alehandr написал(а):
okapo
Файл изъят из моих уроков по MVC.
Сейчас подправлю немного и сделаю пример использования...
Файл изъят из моих уроков по MVC.
Сейчас подправлю немного и сделаю пример использования...
Спустя 3 минуты, 44 секунды (25.01.2012 - 18:19) Alehandr написал(а):
Убрал код...
Спустя 9 минут, 40 секунд (25.01.2012 - 18:28) okapo написал(а):
Что то не то, функция что я использую
меняет только нужную переменную
это что вы мне дали
вот как то так сохраняет
а мне нужно что бы не трогал другие и сохронял в таком формате
меняет только нужную переменную
это что вы мне дали
вот как то так сохраняет
return array(
'$serf_price[t_20]' => 'Hello world!',
);
а мне нужно что бы не трогал другие и сохронял в таком формате
$serf_price['t_20'] => 'Hello world!';
Спустя 15 минут, 25 секунд (25.01.2012 - 18:44) Alehandr написал(а):
okapo
Я видимо не совсем понял того, что у вас уже есть и как работает.
В каком виде у вас сейчас конфиг файл?
Я видимо не совсем понял того, что у вас уже есть и как работает.
В каком виде у вас сейчас конфиг файл?
Спустя 12 минут, 36 секунд (25.01.2012 - 18:56) okapo написал(а):
<?
$serf_add = "1";
$serf_show = "1";
$serf_price['t_20'] = "0.026";
$serf_price['t_30'] = "0.028";
$serf_price['t_40'] = "0.032";
$serf_price['t_50'] = "0.036";
$serf_price['t_60'] = "0.040";
$context_add = "1";
$context_show = "1";
$context_sale = "1";
$context_price = "0.01";
$context_min_plan = "10";
?>
примерно вот такой
ясли я правельно понял то ваш класс переписывает файл но мне так не подходит так как настройки с разных страниц изменяется и не все сразу
Спустя 3 минуты, 1 секунда (25.01.2012 - 18:59) Alehandr написал(а):
function UpdCfg($newVars, $dir)
{
$cfgFile = implode("",file($dir));
$i = 0;
while(true)
{
foreach(array_slice($newVars,$i,1) as $varName => $newVar)
{
$preg = "/\\". preg_quote($varName) ."\040=\040\"[^\n]*\";/";
$cfgFile = preg_replace($preg,$varName." = \"".$newVar."\";",$cfgFile);
}
if($i == count($newVars)-1)break;
$i++;
}
$fp = fopen($dir,"w");
fputs($fp,$cfgFile);
fclose($fp);
}
Спустя 38 минут, 45 секунд (25.01.2012 - 19:38) okapo написал(а):
а как правельно писать вот тут
дает ошибку на
$newVars = array('$price['banner']' => intval($_POST['bnprice']));
дает ошибку на
'$price['banner']'
Спустя 3 минуты, 51 секунда (25.01.2012 - 19:42) Alehandr написал(а):
$newVars = array('$price[\'banner\']' => intval($_POST['bnprice']));
Спустя 8 минут, 56 секунд (25.01.2012 - 19:51) okapo написал(а):
Цитата (Alehandr @ 25.01.2012 - 16:42) |
$newVars = array('$price[\'banner\']' => intval($_POST['bnprice'])); |
не менят значение
а так
$newVars = array($price['banner'] => intval($_POST['bnprice']));
меняет значение для всех переменных одна и таже
Спустя 7 минут, 24 секунды (25.01.2012 - 19:58) Alehandr написал(а):
function UpdCfg($newVars, $dir) {
$cfgFile = implode("",file($dir));
$i = 0;
foreach($newVars as $varName => $newVar) {
$preg = "/" . preg_quote($varName) . "\040=\040\"[^\n]*\";/";
$cfgFile = preg_replace($preg,$varName." = \"".$newVar."\";",$cfgFile);
}
$fp = fopen($dir,"w");
fputs($fp,$cfgFile);
fclose($fp);
}
$newVars = array('$price[\'banner\']' => intval($_POST['bnprice']));
Пробуй.
Спустя 5 минут, 23 секунды (25.01.2012 - 20:04) okapo написал(а):
ураа
заработало, не знаю даже как тебе отблогодорить
огромное тебе спасибо
заработало, не знаю даже как тебе отблогодорить
огромное тебе спасибо
Спустя 3 минуты, 45 секунд (25.01.2012 - 20:08) Alehandr написал(а):
okapo
+ в карму XD
+ в карму XD
Спустя 49 секунд (25.01.2012 - 20:08) Shadez написал(а):
Имхо, лучший вариант работы с конфигами - хранить в одной переменной и использовать var_export() при обновлении значений.