Klasa służy do zapisu zmiennych i tablic do pliku PHP. Zawiera podstawowe funkcje. Może komuś się przyda. Wymagane
PHP5. Klasa nie zajmuje się obróbką danych - to już zadanie kodu, który ją wykorzystuje.
CODE
<?php
function cfg_escape($x)
{
}
class Config
{
private $in='', $file;
public $var='cfg+'; //Domyślna zmienna dla tablicy ustawianej przez SET()
function __construct($file)
{
$this->file=$file;
}
#Dodaj dane z tablic
private function loop(&$array)
{
foreach($array as $key=>$val)
{
{
$this->in.='''.$key.''=>array(';
$this->loop($val);
$this->in.='),';
}
else
{
if($val==='on') $val=1;
$this->in.='''.$key.''=>'.((is_numeric($val))?
$val:'''.cfg_escape
($val).''').','; }
}
}
#Dodaj zmienną
function add($var,&$val)
{
{
$this->in.='$'.$var.'=array(';
$this->loop($val);
$this->in.=');';
}
else
{
$this->in.='$'.$key.'='.((is_numeric($val))?
$val:'''.cfg_escape
($val).''').';'; }
}
#Dodaj wiele wartości
function set(&$list)
{
$this->in.='$'.$this->var.'=array(';
$this->loop($list);
$this->in.=');';
}
#Zapisz
function save(&$data=null)
{
if($data) $this->set($data);
if(file_put_contents($this->file,'<?php '.$this->in.' ?>',2))
{
return true;
}
return false;
}
}
?>
Przykład budowy pliku przy pomocy klasy:
<?php
$file = new Config('katalog/nazwa_pliku.php');
$file -> add('config', $_POST); //Dodajemy zmienną $config - ma zawierać klucze z tablicy $_POST
$file -> add('zmienna', 'Hello world!'); //$zmienna ma wartość "Hello world!"
if($file -> save())
{
echo 'Zapisano ustawienia.'; }
return; //Kończymy! (jeśli aktualny plik ma się dalej nie wykonywać - nie tylko dla funkcji)
?>
Klasa nie sprawdza poprawności nazw zmiennych, dlatego powinny być poprawne. Inne funkcje:
SET($zmienna, $tablica) - przypisywanie kluczy tablicy do domyślnej zmiennej
SAVE($data) - można od razu wykonać SET(), przekazując tablicę jako argument $data
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski