Hola.. bueno pues les copmento tengo un problema con una classe .. bueno problema no tengo..
lo que tengo es una duda con esta classe que eh realizado.. miren.. la classe es un sistema de templates que hace lo siguiente..
Creo un archivo HTML .. con lago asi.
Hola {$usuario}!!!
Son las: {$reloj}
Entonces esas variables son relazadas por las siguientes.
Hola Drek!!!
Son las: 22:10
.. =D.. entonces no es neccesario menter PHP.. la siguiente duda es que cuando $reloj es un araray.. simplemente me debuelve
Son las: Array
Entonces le puse un sistema para que pudiera leer arrays pero lo tuve que hacer manualmente ..
y solo lee hasta 2 arrays.
{$array{key1}{key2}}
Pero el problema es que hay ocaciones en las cuales neccesito más de 2 arrays y llego a utilizar hasta 6.. entonces queria ver si me podrian ayudar a terminar mi classe .. para que leea todos los arrays que tenga una variable y me cree una setencia.. y no tengo muy bien la idea...
tenia una idea con while(is_array($value)) pero nunk me salio.. les dejo el script
Código PHP:
<?php
class skin {
private $data;
public function __construct($archivo) {
if($archivo != NULL) {
if(is_string($archivo)) {
if((file_exists($archivo)) && (is_readable($archivo))) {
$skin = file_get_contents($archivo) or die("Error desconosido al cargar el archivo: ".$archivo);
$this->data = $skin;
} else { die("Archivo inexistente o no leible: ".$archivo); }
} else { die("Nombre del archivo invalido: ".$archivo); }
} else { die("Archivo no encontrado: ".$archivo); }
}
public function sub($array) {
if($array != NULL) {
if(is_array($array)) {
foreach($array as $key => $value) { $sub["{\$".$key."}"] = $value; if(is_array($value)) { foreach($value as $k => $v) { $sub["{\$".$key."{".$k."}}"] = $v; if(is_array($v)) { foreach($v as $n_k => $n_v) { $sub["{\$".$key."{".$k."}{".$n_k."}}"] = $n_v; } } } } }
$this->data = strtr($this->data,$sub);
} else { die("Valor no es array"); }
} else { die("Valor nulo en la string"); }
}
public function skin() {
$this->data = utf8_decode($this->data); echo $this->data; }
}
?>