PHP函数在错误的位置插入值
下面的代码获取目录中所有.csv文件的列表。我创建了函数csvcolumnsum,从每个文件中提取一些信息(第3列中所有值的总和),并将其注入到每个列表项中 html输出应如下所示:PHP函数在错误的位置插入值,php,Php,下面的代码获取目录中所有.csv文件的列表。我创建了函数csvcolumnsum,从每个文件中提取一些信息(第3列中所有值的总和),并将其注入到每个列表项中 html输出应如下所示: <li>Filename (sum)</li> sum<li>Filename ()</li> 文件名(总和) 但结果是这样的: <li>Filename (sum)</li> sum<li>Filename ()</
<li>Filename (sum)</li>
sum<li>Filename ()</li>
文件名(总和)
但结果是这样的:
<li>Filename (sum)</li>
sum<li>Filename ()</li>
sum文件名()
有人能指出为什么会发生这种情况吗?这是相关代码
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>";
require(“csvcolumnsum.php”);
echo“”;
$handle=opendir(“数据”);
while(($file=readdir($handle))!==false){
$file=preg\u replace(“/\\.[^.\\s]{3}$/”,“”,$file);
if(preg_匹配('/[^\.]/i',$file)){
$value=csvcolumnsum(“数据/”$file..csv“,3);
回声“”;
}
}
closedir($handle);
回声“
”;
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);
}
函数csvcolumnsum($filename,$col){
$handle2=fopen($filename,'r');
$data=fgetcsv($handle2);
foreach($headercolumn数据){}
而($data=fgetcsv($handle2)){
$sum+=$data[$col];
}
回音“$sum”;
fclose(handle2美元);
}
这不是echo
的工作方式。如果希望函数将值传回调用函数,则函数需要返回值,而不是回显值:
return "<span>$sum</span>";
在这些行之前打印:
echo "<li><a href=\"?form_name=$file\">$file(";
echo $value;
echo ")</a></li>";
在csvcolumnsum
函数中,您正在echo
ing而不是return
ing。
function csvcolumnsum($filename,$col) {
$handle2 = fopen($filename, 'r');
$data = fgetcsv($handle2);
foreach ($data as $headercolumn) {}
while ($data = fgetcsv($handle2)) {
$sum += $data[$col];
}
return "<span>$sum</span>";
fclose($handle2);
}
函数csvcolumnsum($filename,$col){
$handle2=fopen($filename,'r');
$data=fgetcsv($handle2);
foreach($headercolumn数据){}
而($data=fgetcsv($handle2)){
$sum+=$data[$col];
}
返回“$sum”;
fclose(handle2美元);
}
您应该查阅有关PHP或一般语言工作原理的教程。试图将某些内容“回显”到父函数,这表明对这里发生的事情有着深刻的误解。