我想将文本文件的每一行读入一个数组,并让每一行都在一个新元素中。
到目前为止,我的代码如下。
<?php
$file = fopen("members.txt", "r");
while (!feof($file)) {
$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);
?>
我想将文本文件的每一行读入一个数组,并让每一行都在一个新元素中。
到目前为止,我的代码如下。
<?php
$file = fopen("members.txt", "r");
while (!feof($file)) {
$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);
?>
$lines = file($filename, FILE_IGNORE_NEW_LINES);
file()
似乎比 file_get_contents
+ explode
转换为数组要慢得多。 - Ron我发现最快的方法是:
// Open the file
$fp = @fopen($filename, 'r');
// Add each line to an array
if ($fp) {
$array = explode("\n", fread($fp, filesize($filename)));
}
$filename是你的文件的路径和名称,例如:../filename.txt。
根据您设置文本文件的方式,您可能需要调整 \n 部分。
只需使用此代码:
$array = explode("\n", file_get_contents('file.txt'));
$yourArray = file("pathToFile.txt", FILE_IGNORE_NEW_LINES);
FILE_IGNORE_NEW_LINES
选项可以避免在每个数组元素末尾添加换行符
您还可以使用FILE_SKIP_EMPTY_LINES
选项来跳过空行
参考这里
<?php
$file = fopen("members.txt", "r");
$members = array();
while (!feof($file)) {
$members[] = fgets($file);
}
fclose($file);
var_dump($members);
?>
while(!feof($file))
是错误的? - Barmar就是这么简单:
$lines = explode("\n", file_get_contents('foo.txt'));
file_get_contents()
- 获取整个文件作为字符串。
explode("\n")
- 将字符串使用分隔符"\n"
拆分 - 这是换行符的ASCII-LF转义。
但要注意 - 检查文件是否具有UNIX行结尾。
如果"\n"
无法正常工作,则可以尝试其他换行符编码,例如"\r\n"
、"\r"
或"\025"
。
$lines = array();
while (($line = fgets($file)) !== false)
array_push($lines, $line);
$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);
<?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);
'\n\'
,但它不会被解析为转义序列,必须使用"\n"
以便正确解析。 - codekandis