كود PHP:
//----------------------------------------------------------------------
class Configer{
//----------------------------------------------------------------------
private static $_data =array();
//----------------------------------------------------------------------
public static function set($stringkey,$val){//config.key.key.key ,value
$keys=explode('.',trim($stringkey,'.'));
$parentk=array_shift($keys);
if(count($keys) >0){
$stringkey=implode('.',$keys);
self::$_data[$parentk]=isset(self::$_data[$parentk])?self::$_data[$parentk]:array();
self::$_data[$parentk]=&self::setVal($stringkey,$val, self::$_data[$parentk]);
}else{
self::$_data[$parentk]=$val;
}
unset($keys,$stringkey,$parentk);unset($val,$key);
}
//----------------------------------------------------------------------
public static function &setVal($stringkey,$val,&$parent){
$keys=explode('.',trim($stringkey,'.'));
$parentk=array_shift($keys);
$parent[$parentk]=(count($keys) == 0)?$val:(isset($parent[$parentk])?$parent[$parentk]:array());
if(count($keys) > 0){
$key=array_shift($keys);
$stringkey=(count($keys)>0)?implode('.',$keys):null;
if(!empty($stringkey)){
$parent[$parentk][$key]=(!isset($parent[$parentk][$key]))?array():$parent[$parentk][$key];
$parent[$parentk][$key]=&self::setVal($stringkey,$val,$parent[$parentk][$key]);
}else{
$parent[$parentk][$key]=$val;
}
}
unset($keys,$stringkey,$parentk);unset($val,$key);
return $parent ;
}
//----------------------------------------------------------------------
public static function set2($stringkey,$val){//config.key.key.key ,value
$stringkey=trim($stringkey,'.');
$lenght=stripos($stringkey,'.')?stripos($stringkey,'.'):false;
$parentk=($lenght == false)?$stringkey:substr($stringkey,0,$lenght);
$stringkey=($lenght == false)?null:substr($stringkey,$lenght);
if(!empty($stringkey)){
self::$_data[$parentk]=isset(self::$_data[$parentk])?self::$_data[$parentk]:array();
self::$_data[$parentk]=&self::setVal2($stringkey,$val, self::$_data[$parentk]);
}else{
self::$_data[$parentk]=$val;
}
unset($keys,$stringkey,$parentk);unset($val,$key);
}
//----------------------------------------------------------------------
public static function &setVal2($stringkey,$val,&$parent){
$stringkey=trim($stringkey,'.');
if(empty($stringkey))return $parent;
$lenght=stripos($stringkey,'.');
$parentk=substr($stringkey,0,$lenght);
$stringkey=trim(substr($stringkey,$lenght),'.');
$parent[$parentk]=(empty($stringkey))?$val:(isset($parent[$parentk])?$parent[$parentk]:array());
if(!empty($stringkey) && is_string($stringkey)){
$lenght=stripos($stringkey,'.')?stripos($stringkey,'.'):false;
$key=($lenght == false)?$stringkey:substr($stringkey,0,$lenght);
$stringkey=($lenght == false)?null:substr($stringkey,$lenght);
if(!empty($stringkey)){
$parent[$parentk][$key]=(!isset($parent[$parentk][$key]))?array():$parent[$parentk][$key];
$parent[$parentk][$key]=&self::setVal2($stringkey,$val,$parent[$parentk][$key]);
}else{
$parent[$parentk][$key]=$val;
}
}
unset($keys,$stringkey,$parentk);unset($val,$key);
return $parent ;
}
//----------------------------------------------------------------------
public static function &get($key=false){
if($key === false){
return self::$_data;
}
$keys=explode('.',$key);unset($key);
$parentk=array_shift($keys);
if(isset(self::$_data[$parentk])){
$parent=&self::$_data[$parentk];
}else{
$parent=false;
}
if($parent === false){
return $parent;
}else if(count($keys)>0 && is_array($parent)){
foreach($keys as $key){
if(isset($parent[$key])){
$parent=&$parent[$key];
}else{
return $parent;
}
}
}
unset($keys,$parentk,$key);
return $parent;
}
//----------------------------------------------------------------------
}
?>
طريقة الاستخدام