hakeem69
Messages postés30Date d'inscriptionvendredi 22 juillet 2005StatutMembreDernière intervention 7 mai 2009
-
31 janv. 2008 à 16:33
damsterdamer
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention25 septembre 2009
-
6 juin 2009 à 16:06
Bonjour à tous
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Bon je ne vais pas vous la faire : ‘’oui, dsl mais je suis débuant etc... ‘’ car de toute façon vous allez le remarquez vous-même, en effet j’ai ouvert ma première balise PHP il y a quelques semaines.
Mon problème se situe au niveau d’un tableau, pour mon job l’objectif est de compléter / modifier un tableau par des personnes non avertis en programmation (dont moi lol).
Mais voila la vie ne serait pas assez belle si tout marchait du 1ere coup alors je vous demande si il est possible d’inclure un include d’un ficghier TXT dans mon tableau ?
Et sinon quelle solution aurai-je ?
A noter que lorsqu’on remplace le contenu du fichier txt dans le tableau, ça fonctionne nickel !.
bcmfr
Messages postés137Date d'inscriptionjeudi 18 juillet 2002StatutMembreDernière intervention20 novembre 2016 31 janv. 2008 à 17:06
Slt
comme le dit sidf, il faut ouvrir le fichier pour pouvoir le lire.
regarde cet article pas mal fait pour utiliser des fichiers
http://www.phpdebutant.org/article58.php @+
//ya ptet des erreurs mais j ecris ça sans editeur et avant de partir du taf
--------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
hakeem69
Messages postés30Date d'inscriptionvendredi 22 juillet 2005StatutMembreDernière intervention 7 mai 2009 31 janv. 2008 à 19:36
RE,
Sidf => je ne pense pas que la foction include soit
réservée au page PHP puisque ca marche très bien avec de l’HTLM etmême avec le
fichier TXT, par exemple :
Fichier.txt :
Bla bla bla !
Fichier.php :
<?php include ‘Fichier.txt’?>
Dans ce cas la page php affichera bien Bla bla bla !
Le souci dans mon script c’est qu’a mon avis, ‘google.. etc..
est reconnue comme une chaîne de caractère je pense.
Bcmfr => Je n’y arrive pas non plus comme ca, j’ai essayé :
<?php
$fichier = "fichier.txt";
$lire = fopen ($fichier, 'r');
$var = fgets ($lire, 255);
echo $var;
// la c’est parfait, le contenu du fichier TXT s’affiche !
mais en faisant ce qui suit :
$fixe = array($var);
reset($fixe);
while
(list($f,$g) = each($fixe))
{echo
"$f
";}
// la ce ne fonctionne plus !
?>
Personne à une idée pour simplement inclure le contenu de
mon fichier TXT dans le tableau ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
hakeem69
Messages postés30Date d'inscriptionvendredi 22 juillet 2005StatutMembreDernière intervention 7 mai 2009 1 févr. 2008 à 19:46
Bonjour,
Je m’excuse de ne pas m’être manifesté avant mais j’ai été
pris par le boulot.
C’est très gentil à vous, surtout à toi malalam qui souligne
cordialement que ma façon d’écrire est pourris.
Cela dit, je me vois obligé de te retourner le compliment avec
autant de cordialité car avec ta façon ça ne marche pas non plus.
Après quelques recherches, je pense m’orienter vers une
solution PHP / XML, mais si vous trouvez la solution pour l’enrichissement
commun, je suis preneur.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 févr. 2008 à 20:36
Ahem.
Donc déjà, tu n'auras visiblement pas remarqué mon ";-)" enfin de phrase. Aucune importance, très sincèrement.
FICHIER.TXT (que mes collègues pourront éditer) :
On reprend :
'google'=>'http://www.google.fr/' , 'Jeux Vidéo'=>'http://www.jeuxvideo.com/'
ça, c'est un hash. Chaque élément est séparé par une virgule.
explode(',', "'google'=>'http://www.google.fr/' , 'Jeux Vidéo'=>'http://www.jeuxvideo.com/'")
un print_r() là_dessus donne bien un tableau.
ce que je n'avais pas noté, c'est que tu voulais avoir la paire clef => valeur.
Donc :
<?php
function mySplit($sChaine) {
if(!is_string($sChaine)) {
throw new Exception('Le paramètre doit être une chaîne');
}
$aFinal = array();
$aEntries = explode(',', $sChaine);
if(count($aEntries) !== 2) {
throw new Exception('Problème de format');
}
foreach($aEntries as $sEntry) {
$aTmp = explode('=>', $sEntry);
$aFinal[$aTmp[0]] = $aTmp[1];
}
return $aFinal;
}
$sChaine = "'google'=>'http://www.google.fr/' , 'Jeux Vidéo'=>'http://www.jeuxvideo.com/'";
print_r(mySplit($sChaine));
?>
Maintenant, sur ton code, puisque tu veux (d'ailleurs si tu ne le veux pas, c'est pareil) que j'explique mon commentaire malgré mon clin d'oeil :
reset() sur un tableau que tu n'as pas parcouru est stupide : tu réinitialises un tableau qui vient d'être initialisé.
Mais surtout, tu devrais revoir les fondamentaux de php :
un include inclus un fichier. Certes. Si ce n'est pas du php, le fichier est "affiché" tel quel. C'est de l'output. Et sans header() particulier indiquant à la page ce que devra être son output, ce sera du texte (plain/text).
Maintenant, faisons un array(texte). Que fait on ? On dit explicitement à php de convertir le texte en tableau. Mais comment php peut-il deviner qu'il doit parser ton texte pour faire ce que dans ta tête tu as imaginé qu'il devait faire ? "'bla'=>'toto'", ça n'est qu'une chaîne. Rien d'autre. A aucun moment tu n'as dit à php : attention, c'est un peu comme du php mon truc, donc essaye de l'analyser, ça ressemble à un tableau!! Et même si tu l'avais dit...ça ne fait qu'y ressembler.
?><? : là, faut que tu m'expliques. Tu fermes un tag php pour le réouvrir juste après ? Quand tu veux sortir d'une salle dont la porte ouverte, tu fermes d'abord la porte puis tu la réouvres après ? Sait-on jamais, des fois que ce soit un piège, elle était peut-être, en réalité, fermée, la porte...on n'est jamais trop prudent.
Re sur les tags : <? est déprécié. C'était bon en php3, nettement moins en php4, carrément déconseillé en php5 et surtout avec l'avènement de xml, et on est à l'aube de php6. Ca fait quand même 3 versions de retard si tu veux le justifier.
Et pour finir : les valeurs d'attributs html entre apostrophes, c'était en html4. On en est au xhtml, et là, pas de possibilité de faire autrement : ce sont des guillemets, parce qu'on est à l'ère du xml.
Franchement, les petites erreurs de ton code, je n'en avais rien à faire, c'était une boutade. Mais maintenant, tu as le fond de vérité de ma boutade. Et tu peux me maudire avec raisons, là :-)
Juste : eval() est valable. C'est juste que c'est une fonction :
- dangereuse
- affreusement lente
Lais sinon, la solution est valable :-) De tte manière, toutes les solutions de Teclis sont valables. C'est juste qu'elles sont tjrs dangereuses et affreusement lentes ;-) (et Teclis, lui, notera le clin d'oeil...).
damsterdamer
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention25 septembre 2009 6 juin 2009 à 14:56
Bonjour !
Je me permet de poser une autre question sur ce topic en particulier, car elle s'approche énormément de ce sujet..
J'ai un problème presque similaire, et mes connaissance en PHP étant limitées, j'ai du mal à trouver (et pourtant, vraiment, j'ai cherché... peut-être de travers ?) la solution...
J'ai un fichier "pages_auth.txt" (ou "pages_auth.php", ça donne le même résultat) contenant :
"valeur1","valeur2","valeur3"
Si j'écris :
<?php
$sContent=file_get_contents('./inc/pages_auth.txt');
echo $sContent;
?>
J'obtiens bien "valeur1","valeur2","valeur3" sur ma page.
Beh ma fonction ne fonctionne pas, le $arrayPages=array($sContent); pose problème...
Pourtant, $arrayPages="valeur1","valeur2","valeur3"; fonctionne :\
J'imagine que l'erreur est toute bête, j'ai meme essayé le "eval" (qui m'a sorti des erreurs lors de l'interprétation...), j'ai lu le commentaire de Malalam mais non, rien à faire, je saisi pas le soucis...
Dans le commentaire de Malalam, il est dit qu'il faut faire "comprendre" qu'il s'agit de PHP et l'analyser comme tel, sauf que là finalement, est-ce vraiment nécessaire, ça n'est qu'une variable contenant des caractères qui seront interprétés par la suite..
damsterdamer
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention25 septembre 2009 6 juin 2009 à 16:06
Bon beh j'ai trouvé une petite solution alternative, mais qui ne me plait guère.. provisoirement ça fera l'affaire, mais si vous trouvez directement comment résoudre mon problème précédent, j'en serais ravi :)
<code class="php_operator">
Mais alors c'est moche et pas fiable... (quoi qu'avec
le file_exists, j'ai un sentiment de sécurité qui
m'envahit sans pour autant être vraiment sûr de
son efficacité ^^)
Du bricolage maison quoi.
Damien J.