Page 1 sur 2

Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 16:57
par Castor Gaspard
Bonjour,

Je suis le conseil de Stealth, et j'essaie d'utiliser un fichier .ini. :D

A vrai dire, je pense avoir compris le principal, sait l'écrire et le lire.

En revanche, je me pose la question suivante : comment retrouver certaines valeurs ?

Je m'explique... Soient deux groupes de liens :
- un pour les pages internes,
- un pour les pages externes.

Mon fichier .ini se présente comme suit :

Code : Tout sélectionner

[letter] title = Lettre description = lettre de Gaspard text = <p>Lorem Ipsum...</p> [text] title = Texte description = texte de Gaspard text = <p>Lorem Ipsum......</p> [gallery] title = Quelques images [video] title = Une vidéo
letter et text sont des liens internes. gallery et video sont des liens externes.

Comment, par exemple, ne retrouver que les valeurs des liens internes dans mon .ini ? Avant, "à l'ancienne", grâce à un "explode" ($attachments_url versus $medias_url) et à un foreach, je pouvais retrouver les deux groupes. Maintenant, comment faire ?

En rédigeant ce message, je sens que, confusément, une information m'échappe. :mrgreen:

Merci pour votre aide.

Cordialement,

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 17:13
par stealth35
les lien c'est les cochets donc les clefs du tableau

si ca te plait plus fais
[letter.php]
title = Lettre
description = lettre de Gaspard
text = "<p>Lorem Ipsum...</p>"
sinon dans le fichier ini pour du texte il faut mettre des " :wink:

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 17:35
par Castor Gaspard
Merci Stealth,

Moui, ça me plait bien... Tu devais t'en douter, car tu as quelques notions de psychologie, me semble-t-il.

En revanche, je risque t'ennuyer quelque peu avec mes questions durant ces prochains jours. :mrgreen:

Merci pour les guillemets : je pensais qu'il fallait protéger tous les caractères non alphanumériques avec eux... Donc j'aboutissais à des chaines assez lourdes. Je pars de loin.

Donc si je suis ta réponse, je dois ajouter des clefs, ce qui me donnerait un fichier .ini qui ressemblerait à :

Code : Tout sélectionner

[intern] [letter] title = "Lettre" description = "lettre de Gaspard" text = "<p>Lorem Ipsum&#8230;</p>" [text] title = "Texte" description = "texte de Gaspard" text = "<p>Lorem Ipsum&#8230;.</p>" [extern] [gallery] title = "Quelques images" [video] title = "Une vidéo"
Ainsi, en imprimant le tableau [intern], je trouve uniquement les lies internes ? Je me fourvoie ? :mrgreen:

Merci.

A plus,

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 17:42
par stealth35
ca marche pas comme ca,
2 solutions

soluce 1
faire plusieurs fichier .ini

avec par exemple
[intern]
config = intern.ini

[extern]
config = extern.ini

soluce 2
tu peu faire du miltidimention par contre ca ressemblera a ca
[intern]
letter[title] = "Lettre"
letter[description] = "lettre de Gaspard"
letter[text] = "<p>Lorem Ipsum…</p>"

text[title] = "texte"
text[description] = "texte de Gaspard"
text[text] = "<p>Lorem Ipsum…</p>"

[extern]
letter[title] = "Lettre etern"
letter[description] = "lettre de Gaspard blabla"

a voir, la 1 me semble plus claire mais la 2 est correct aussi comme tu le sent :wink:

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 18:05
par Castor Gaspard
Merci. :D

Je teste !

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 19:54
par Castor Gaspard
...

Bon, quand j'utilise la solution 1, avec les tableaux multidimensionnels, j'obtiens invariablement une erreur d'analyse "Error parsing config.ini on line..."

Voici le code :

Code : Tout sélectionner

; ; Réservé aux commentaires [meta] doctype = "2" [intern] letter[title] = "Lettre" letter[description] = "lettre de Gaspard" letter[text] = "Lorem <strong>ipsum</strong> text[title] = "Texte" text[description] = "texte de Gaspard" text[text] = "Lorem ipsum repetita" [extern] gallery[title] = "gallery" video[title] = "vidéo"
Avec l'exemple de Stealth, même problème.

En revanche, pas d'erreur d'analyse, en laissant vide les valeurs entres crochets.

Merci pour l'aide. :lol:

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 20:18
par stealth35
je sais pu si il faut des quote pour les valeur entre crochet essayes

Re: Retrouver certains valeurs avec parse_ini

Posté : 11 août 2010, 20:39
par Castor Gaspard
Bonsoir,

Oui, j'ai testé avec et sans quotes, en ajoutant des crochets autour des variables qui n'en avait pas. J'ai l'impression d'avoir *tout* essayé, d'où ma perplexité !!!

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 12 août 2010, 00:08
par stealth35
Bonsoir,

Oui, j'ai testé avec et sans quotes, en ajoutant des crochets autour des variables qui n'en avait pas. J'ai l'impression d'avoir *tout* essayé, d'où ma perplexité !!!

Gaspard
c'est qu'on dois pas pouvoir faire avec des clés...

Re: Retrouver certains valeurs avec parse_ini

Posté : 12 août 2010, 07:53
par Castor Gaspard
Bonjour,

Oui, je crois, car je n'ai rien trouvé sur Internet, y compris sur les pages anglophones.

Cordialement,

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 13 août 2010, 20:49
par Castor Gaspard
Bonsoir,

Alors, j'ai bien progressé dans l'utilisation de mon fichier .ini.

Cependant, je rencontre un écueil de taille ! :mrgreen:

Je voudrai réafficher avec un formulaire les données contenues dans la fameux fichier config.ini. Donc, logiquement, j'ai appelé le fichier avec la syntaxe...
include ('config.ini');
$config = parse_ini_file('config.ini', true);
Fatalitas ! Mon formulaire s'affiche avec les données, mais après l'affichage "brut" de config.ini.

J'ai essayé de remplacer l'include par un require, ou de remplacer true par false, mais en vain.

Merci pour votre aide. :)

Cordialement,

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 13 août 2010, 20:53
par stealth35
pas compris ta plus de code a montrer :wink:

Re: Retrouver certains valeurs avec parse_ini

Posté : 13 août 2010, 21:19
par Castor Gaspard
...

Moui,

Je voulais juste épargner un copier coller abscons.
<?php if(isset($_POST['save']))
{
// Traitements divers et variés
}
else
{
?>
<div class="form">
<?php include ('settings.php'); ?>
<?php include ('config.ini');
$config = parse_ini_file('config.ini', true);
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<dl>
<dd><label for="host">Adresse <input type="text" size="50" name="host" id="host" value="<?php echo $config['meta']['host']; ?>" /></label></dd>
//... Ainsi de suite pour les autres données
<dt><input type="submit" class="save" name="save" id ="save" value="Sauvegarder" /></dt>
</dl>
</form>
</div>
<?php
}
?>
En fait, c'est l'instruction include ('config.ini'); qui semble provoquer l'affichage.

Merci pour ton aide !

Bien cordialement,

Gaspard

Re: Retrouver certains valeurs avec parse_ini

Posté : 13 août 2010, 21:31
par stealth35
pourquoi faire include ?

Re: Retrouver certains valeurs avec parse_ini

Posté : 13 août 2010, 21:41
par Castor Gaspard
...

Parce que je suis bas de plafond. :lol:

Mais tu as diablement raison : supprimer l'include a remédié au problème.

Sois en remercié.

Cordialement,

Gaspard

Post Scriptum. Je laisse le sujet ouvert, jusqu'à l'imminente fin de mes travaux. Après, je mettrai résolu.