--- /dev/null
+<?php
+
+function parsecfg ($F) { # Se admiten matrices numéricas (guardadas como m = v1:v2...) o asociativas (guardadas como m.c1 = v1\\m.c2 = v2...)
+ foreach (file ($F, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $L) {
+ list ($C, $V) = preg_split ("/\s*=\s*/", $L, 2);
+ if (strpos ($C, ".") !== FALSE) {
+ $CC = explode (".", $C, 2); # Necesario limitar a 2 por si hay puntos en la clave
+ $D[$CC[0]][$CC[1]] = $V;
+ } else {
+ $D[$C] = strpos ($V, ";") !== FALSE && strpos ($V, "[[") === FALSE && strpos ($V, "<") === FALSE ? explode (";", $V) : $V;
+ if (! end ($D[$C])) array_pop ($D[$C]); # Eliminar último elemento vacío (normalmente por ; final que fuerza array)
+ }
+ }
+ return $D;
+}