将txt文件的每一行读取到新的数组元素
我正在尝试将文本文件的每一行读入一个数组,并将每行都放入一个新的元素中。
我的代码到目前为止。
<?php $file = fopen("members.txt", "r"); $i = 0; while (!feof($file)) { $line_of_text = fgets($file); $members = explode('\n', $line_of_text); fclose($file); ?>
如果你不需要任何特殊的处理, 这应该做你想要的
$lines = file($filename, FILE_IGNORE_NEW_LINES);
我发现的最快的方法是:
// Open the file $fp = @fopen($filename, 'r'); // Add each line to an array if ($fp) { $array = explode("\n", fread($fp, filesize($filename))); }
其中$ filename将是您的文件的path和名称,例如。 ../filename.txt。
根据你如何设置你的文本文件,你可能不得不玩弄\ n位。
只需使用这个:
$array = explode("\n", file_get_contents('file.txt'));
<?php $file = fopen("members.txt", "r"); $members = array(); while (!feof($file)) { $members[] = fgets($file); } fclose($file); var_dump($members); ?>
$yourArray = file("pathToFile.txt", FILE_IGNORE_NEW_LINES);
FILE_IGNORE_NEW_LINES
避免在每个数组元素的末尾添加换行符
您也可以使用FILE_SKIP_EMPTY_LINES
来跳过空行
参考这里
这很简单:
$lines = explode("\n", file_get_contents('foo.txt'));
file_get_contents()
– 以stringforms获取整个文件。
explode("\n")
– 将string与分隔符"\n"
分隔 – 换行符的ASCII-LF转义是什么。
但要注意 – 检查文件是否有UNIX结尾。
如果"\n"
不能正常工作,您可以使用另一个新行的编码,您可以尝试"\r\n"
, "\r"
或"\025"
$lines = array(); while (($line = fgets($file)) !== false) array_push($lines, $line);
显然,你需要首先创build一个文件句柄并将其存储在$file
。
$file = __DIR__."/file1.txt"; $f = fopen($file, "r"); $array1 = array(); while ( $line = fgets($f, 1000) ) { $nl = mb_strtolower($line,'UTF-8'); $array1[] = $nl; } print_r($array);
你是在正确的轨道上,但是你发布的代码存在一些问题。 首先,while循环没有右括号。 其次,$ line_of_text会被每个循环迭代覆盖,通过在循环中将=改成=。 第三,你正在爆炸字面字符'\ n'而不是实际的换行符。 在PHP中,单引号将表示文字字符,但双引号实际上将解释转义字符和variables。
<?php $file = fopen("members.txt", "r"); $i = 0; while (!feof($file)) { $line_of_text .= fgets($file); } $members = explode("\n", $line_of_text); fclose($file); print_r($members); ?>
$file = file("links.txt"); print_r($file);
这将接受txt文件作为数组。 所以,写任何东西到links.txt文件(对一个元素使用一行)之后,运行这个页面:)你的数组将是$ file