2010-09-21 9 views
0

je dispose d'un fichier .ini avec le contenu de ...besoin d'analyser le fichier .ini pour extraire des valeurs

[template] 
color1 = 000000 
color2 = ff6100 
color3 = ff6100 
color4 = 000000 

Et un fichier dont le contenu ci-dessous qui est appelé à partir functions.php qui passe en 2 valeurs:

$ myTheme, qui est le nom du thème/modèle dont les couleurs sont recherchés et place $, ce qui est le numéro de couleur spécifique recherchée (couleurs) 1-4

$myTheme = $_REQUEST['theme']; 
$spot = $_REQUEST['spot']; 
$myColor = get_option($myTheme); 

    $path_to_ini = "styles/". $myTheme . "/template.ini"; 

if ($myColor == "") { 
    if($spot == 1){$myColor = [insert color1 value here];} 
    if($spot == 2){$myColor = [insert color2 value here];} 
    if($spot == 3){$myColor = [insert color3 value here];} 
    if($spot == 4){$myColor = [insert color4 value here];} 
} 

echo $myColor; 

Je cherche aider avec comment p ass le fichier ini pour remplir les données entre parenthèses avec la couleur appropriée du fichier template.ini.

+3

Vous devez _never_ utilisateur utilisation entrée pour les chemins du système de fichiers! Cela peut être très dangereux! – jwueller

+1

@elusive, bon point, mais je pense qu'il serait plus précis de dire que la valeur doit être assainie/nettoyée/vérifiée avant utilisation. – jeroen

+1

@jeroen: C'est vrai. Désolé pour ça. J'utiliserais quelque chose comme ['basename()'] (http://php.net/basename) sur celui-ci. – jwueller

Répondre

1

Utilisation parse_ini:

$colors = parse_ini($path_to_ini, true); 

if(array_key_exists($myTheme, $colors)) { 
    $myColor = $colors[$myTheme]['color' . $spot]; 
} 

Vous n'avez pas besoin de comparer pour chaque couleur $ place - vous pouvez construire la clé du tableau pour obtenir la valeur.

Questions connexes