Le code ci-dessous affiche la liste de tous les fichiers .csv d'un répertoire. J'ai créé la fonction csvcolumnsum pour extraire des informations de chaque fichier (la somme de toutes les valeurs dans la colonne 3) et l'injecter dans chaque élément de la liste.La fonction PHP insère des valeurs au mauvais endroit
La sortie HTML doit ressembler à ceci:
<li>Filename (sum)</li>
Mais il vient comme ça:
sum<li>Filename()</li>
peut pointer quelqu'un pourquoi cela se produit? Voici le code pertinent.
require("csvcolumnsum.php");
echo "<ul class=\"users\">";
$handle=opendir("data");
while (($file = readdir($handle))!==false) {
$file = preg_replace("/\\.[^.\\s]{3}$/","",$file);
if (preg_match('/[^\.]/i', $file)) {
$value = csvcolumnsum("data/".$file.".csv",3);
echo "<li><a href=\"?form_name=$file\">$file(";
echo $value;
echo ")</a></li>";
}
}
closedir($handle);
echo "</ul>";
csvcolumnsum.php
function csvcolumnsum($filename,$col) {
$handle2 = fopen($filename, 'r');
$data = fgetcsv($handle2);
foreach ($data as $headercolumn) {}
while ($data = fgetcsv($handle2)) {
$sum += $data[$col];
}
echo "<span>$sum</span>";
fclose($handle2);
}
vous devriez regarder un tutoriel sur PHP ou le fonctionnement des langues en général. Essayer de "renvoyer" quelque chose à la fonction parente montre une profonde incompréhension de ce qui se passe ici. – meagar