将文本文件行读入数组元素
问题:
在此代码片段中将文本文件逐行读取到数组中:
<code class="php">$file = fopen("members.txt", "r"); while (!feof($file)) { $line_of_text = fgets($file); $members = explode('\n', $line_of_text); } fclose($file);</code>
为什么 $members 数组只包含文本文件的最后一行,而不是每行一个元素?
答案:
提供的代码正确读取文本文件中的行,但在创建行数组时遇到问题。在循环中使用explode('n', $line_of_text) 会在每次迭代中覆盖$members 数组,最终仅存储最后一行。
要解决此问题,请改用文件函数:
<code class="php">$lines = file($filename, FILE_IGNORE_NEW_LINES);</code>
该函数直接创建一个数组,其中每个元素代表文本文件中的一行。使用 FILE_IGNORE_NEW_LINES 会跳过每行的换行符,确保数组仅包含该行内容。
以上是为什么我的代码只将文本文件的最后一行存储在数组中,而不是所有行?的详细内容。更多信息请关注PHP中文网其他相关文章!