Globalus
Новичок
Помогите с кодом php, не пойму что не так...
Буду очень благодарен если поможете объяснить что не так в коде, в общем вот код которые обрабатывает данные формы:
public function action_save_settings() {
$str = "<?php\r\n";
$stf = $_REQUEST['sys']['tizer_formats'];
unset($_REQUEST['sys']['tizer_formats']);
foreach($_REQUEST['sys'] as $key => $val) {
$str .= "\$sys['".$key."'] = '".$val."';\r\n";
}
$tf = explode("\r\n",$_REQUEST['sys']['tizer_formats']);
$str .= "\$sys['tizer_formats'] = array(";
foreach($tf as $i => $val) {
preg_match("|^([0-9]{2,3}).{1}([0-9]{2,3})$|Uims",$val,$m);
$w = $m[1];
$h = $m[2];
if ($w > 0 && $h > 0) {
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
}
}
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
$str .= ");\r\n";
$str .= '?>';
$f = fopen('config/main.php','w');
fwrite($f,$str);
fclose($f);
header("Location:/admin.php?show=settings");
}
Вот эта часть кода должна выполнять построения массива типа - array(0=>array('w'=>75,'h'=>75),1=>array('w'=>100,'h'=>100),2=>array('w'=>150,'h'=>150)); :
$str .= "\$sys['tizer_formats'] = array(";
foreach($tf as $i => $val) {
preg_match("|^([0-9]{2,3}).{1}([0-9]{2,3})$|Uims",$val,$m);
$w = $m[1];
$h = $m[2];
if ($w > 0 && $h > 0) {
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
}
}
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
$str .= ");\r\n";
$str .= '?>';
Вот эта часть кода отвечает за сохранения изменённой информации в файл:
$f = fopen('config/main.php','w');
fwrite($f,$str);
fclose($f);
Вроде все правильно сделал, но запись в файле появляется такая: array(); Объясните что не так, за ранее спасибо!
Буду очень благодарен если поможете объяснить что не так в коде, в общем вот код которые обрабатывает данные формы:
public function action_save_settings() {
$str = "<?php\r\n";
$stf = $_REQUEST['sys']['tizer_formats'];
unset($_REQUEST['sys']['tizer_formats']);
foreach($_REQUEST['sys'] as $key => $val) {
$str .= "\$sys['".$key."'] = '".$val."';\r\n";
}
$tf = explode("\r\n",$_REQUEST['sys']['tizer_formats']);
$str .= "\$sys['tizer_formats'] = array(";
foreach($tf as $i => $val) {
preg_match("|^([0-9]{2,3}).{1}([0-9]{2,3})$|Uims",$val,$m);
$w = $m[1];
$h = $m[2];
if ($w > 0 && $h > 0) {
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
}
}
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
$str .= ");\r\n";
$str .= '?>';
$f = fopen('config/main.php','w');
fwrite($f,$str);
fclose($f);
header("Location:/admin.php?show=settings");
}
Вот эта часть кода должна выполнять построения массива типа - array(0=>array('w'=>75,'h'=>75),1=>array('w'=>100,'h'=>100),2=>array('w'=>150,'h'=>150)); :
$str .= "\$sys['tizer_formats'] = array(";
foreach($tf as $i => $val) {
preg_match("|^([0-9]{2,3}).{1}([0-9]{2,3})$|Uims",$val,$m);
$w = $m[1];
$h = $m[2];
if ($w > 0 && $h > 0) {
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
}
}
$str .= $i."=>array('w'=>".$w.",'h'=>".$h."),";
$str .= ");\r\n";
$str .= '?>';
Вот эта часть кода отвечает за сохранения изменённой информации в файл:
$f = fopen('config/main.php','w');
fwrite($f,$str);
fclose($f);
Вроде все правильно сделал, но запись в файле появляется такая: array(); Объясните что не так, за ранее спасибо!