【发布时间】:2021-08-20 02:56:09
【问题描述】:
我试图在不包含另一个文件的路径以及文件名的文件的每一行中显示总数, 但是如果它有一个到另一个文件的路径,则循环遍历该文件并将它拥有的所有数字相加,只要当前文件中存在一个文件的路径,循环就会继续进行。
这是我的代码
function fileProcessor($value){
if(file_exists(trim($value))){
$total = 0;
$files = file($value, FILE_SKIP_EMPTY_LINES);
foreach($files as $data) {
if(!preg_match("/.txt/i", $data)){
$num = floatval($data);
$total += $num;
} else {
fileProcessor(trim($data));
}
}
echo $value. ' - ' .($total);
} else {
echo 'File does not exist';
}
fileProcessor('text_files/first.txt');
}
我正在使用 3 个 .txt 文件,在这些文件中我有类似的内容
first.txt
- 1
- 3
- 3
- second.txt
second.txt
- 2
- 3
- 第三个.txt
第三个.txt
- 1
- 2
我正在寻找的输出
- first.txt - 15
- second.txt - 8
- third.txt - 3
如果有人能指出我正确的方向,我将不胜感激,我不知道我是否做得对。
【问题讨论】:
-
对于初学者来说,你没有从函数返回任何东西,所以它不知道何时停止执行
-
还有,你为什么总是打电话给
fileProcessor('text_files/first.txt');?这意味着要开始这个过程吗?如果是这样,那可能应该在函数之外调用 -
感谢@pew007 我正在调用函数
fileProcessor('text_files/first.txt');来启动进程 -
我也试过返回
$total += $num;和fileProcessor(trim($data));,然后在这里发布问题,但没有用;
标签: php recursion infinite-recursion