PHP include fichier plusieurs fois dans une page
J'ai un fichier php appelé kal_test.php
qui donne une valeur à la variable $vbl
. Cette variable est nécessaire dans le fichier appelé kal_generator.php
qui produit un tableau à partir de cette variable (je vous épargne les détails). Il va comme ceci:
[kal_test.php]
<?php
$vbl = "14/09/2011";
include ("kal_generator.php");
?>
[kal_test.php]
<?php
//Long code converts the $vbl into a 2-dimensional array called $output
//I'll spare you the details (it works fine by the way)
?>
<table>
<tr><th>bla</th><th>blabla</th></tr>
<?php
foreach ($output as $v1) {
echo "<tr>";
foreach ($v1 as $v2) {
echo "<td>$v2</td>";
}
echo "</tr>\n";
}
?>
</table>
Cette mise en place fonctionne bien, mais je ne peux pas faire deux de ceux qui apparaissent sur la même page, comme ceci:
[kal_test.php]
<?php
$vbl = "14/09/2011";
include ("kal_generator.php");
$vbl = "21/09/2011";
include ("kal_generator.php");
?>
Cela vous donnera le résultat suivant:
//here comes the header
<table> //table created with $vbl = "14/09/2011"
<tr><th>bla</th><th>blabla</th></tr>
<tr><td>this</td><td>works</td></tr>
<tr><td>this</td><td>works</td></tr>
</table>
//here should the second table be and also the rest of the page (footer), this is completely missing
Ce que je fais mal?
Merci!
- Ne pas le faire. Mettre une fonction qui comprennent et appeler la fonction à chaque fois que vous en avez besoin.
- J'aimerais le faire mais la longueur du code est (surprise!) vraiment long
- Qui s'en soucie.... Ce qui est si dur à propos de l'emballer avec la
function
mot-clé et d'un couple de parenthèses? Peut-être vous devriez envisager la rupture de cette fonction dans un certain nombre de fonctions pendant que vous y êtes.
Vous devez vous connecter pour publier un commentaire.
Vous êtes susceptible de définir une fonction ou d'une classe dans
kal_generator.php
. PHP s'interrompt lorsque vous essayez de redéfinir une telle fonction ou de la classe. Envisager de mettre votre code dans une fonction, inclure cette fonction une fois, puis exécutez la fonction au lieu d'inclure un fichier.kal_test.php
kal_generator.php
include_once()
fonction plutôt queinclude()
. (il ne fait aucune différence, mais pourrait vous faire économiser des erreurs plus tard, si vous avez accidentellement essayer de l'inclure deux fois)require_once
pour éviter plus tard des accidents qui se produit si une inexistant ou une fonction est utilisée sans vérification de son existence. Bonne suggestion sur l'utilisation de*_once
bien.