You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP循环读取文件时字符串追加失效仅保留最后内容如何解决?

问题原因

file()函数默认会保留每行末尾的换行符,所以你从order.txt读取到的每个文件名实际都带有换行符(比如"one.txt\n")。file_get_contents找不到带换行符的文件,会返回false,而字符串拼接时false会被转为空字符串,导致前面文件的内容都没被追加。如果order.txt的最后一行没有换行符,就能正确读取该文件,最终变量就只剩最后一个文件的内容。

解决方法

有两种简单的修复方式:

方式一:读取每行时修剪空白字符

在循环里用trim()去掉文件名的换行符和首尾空白:

$order = file("order.txt");
$content = "";
foreach($order as $line) {
    $filename = trim($line);
    // 可选:增加文件存在检查,避免报错
    if (file_exists($filename)) {
        $content .= file_get_contents($filename);
    }
}
return $content;

方式二:读取文件时直接忽略换行符

使用file()函数的FILE_IGNORE_NEW_LINES参数,读取时自动去掉每行的换行符:

$order = file("order.txt", FILE_IGNORE_NEW_LINES);
$content = "";
foreach($order as $filename) {
    if (file_exists($filename)) {
        $content .= file_get_contents($filename);
    }
}
return $content;

内容的提问来源于stack exchange,提问作者CoopDaddio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:40:36