将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将是文件的路径和名称,例如。 ../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 = array();
while (($line = fgets($file)) !== false)
    array_push($lines,$line);
显然,您首先需要创建一个文件句柄并将其存储在“ 9”中。     ,        就这么简单:
$lines = explode(\"\\n\",file_get_contents(\'foo.txt\'));
file_get_contents()
-将整个文件作为字符串获取。
explode(\"\\n\")
-将使用定界符
\"\\n\"
分割字符串-什么是换行符的ASCII-LF转义。 但是请注意-检查文件是否以UNIX-Line结尾。 如果
\"\\n\"
无法正常工作,则您还有另一个2换行符的编码,可以尝试
\"\\r\\n\"
\"\\r\"
\"\\025\"
    ,        
$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中,单引号表示文字字符,但双引号实际上将解释转义的字符和变量。
    <?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     ,        此处已对此进行了很好的介绍,但是,如果您确实确实需要比此处列出的任何产品更高的性能,则可以使用使用
strtok
的方法。
$Names_Keys = [];
$Name = strtok(file_get_contents($file),\"\\n\");
while ($Name !== false) {
    $Names_Keys[$Name] = 0;
    $Name = strtok(\"\\n\");
}
请注意,这假设您的文件以
\\n
作为换行符保存(可以根据需要进行更新),并且还将单词/名称/行存储为数组键而不是值,以便将其用作查找表,允许使用
isset
(快得多),而不是
in_array
。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...