使用 file_put_contents 向文件追加数据时,可通过字符串拼接方式在数组元素前插入一行固定文本,避免直接写入数组导致的格式错误。
在 PHP 中,file_put_contents() 函数不支持直接写入数组并自动换行——若传入数组(如 $emails = [1,2,3]),PHP 会将其强制转换为字符串 "Array",而非逐项输出。你原始代码中看似输出了数字列表,实则可能因隐式类型转换或调试环境干扰造成误解;真正可靠的做法是手动构建带换行符的字符串。
要实现如下目标格式:
one line 1 2 3 4 5 6 7 8
推荐采用字符串累积方式(而非数组存储):
$a = "one line";
$emails = $a . "\n"; // 初始化字符串,含首行 + 换行
while ($row = $data->fetch(PDO::FETCH_ASSOC)) {
$emails .= $row['id'] . "\n"; // 追加每项 + 换行符
}
file_put_contents("uploads/emails.txt", $emails, FILE_APPEND | LOCK_EX);⚠️ 注意事项:

✅ 总结:不要将数组直接传给 file_put_contents();始终以字符串为单位组织内容,显式控制换行与顺序,即可精准生成所需格式。