Php-将文件行读入数组

Php-将文件行读入数组,php,html,algorithm,file,Php,Html,Algorithm,File,我的文件中的数字是5X5: 13456 23789 14789 09678 45678 我想把它写进这个表格里 array[0]{13456} array[1]{23789} array[2]{14789} array[3]{09678} array[4]{45678} 我的代码是: $fileName = $_FILES['file']['tmp_name']; //Throw an error message if the file could not be open $file

我的文件中的数字是5X5:

13456
23789
14789
09678
45678
我想把它写进这个表格里

array[0]{13456}
array[1]{23789}
array[2]{14789}
array[3]{09678}
array[4]{45678}
我的代码是:

$fileName = $_FILES['file']['tmp_name'];
  //Throw an error message if the file could not be open
  $file = fopen($fileName,"r") or exit("Unable to open file!");

  while ($line = fgets($file)) {
      $digits .= trim($line);
     $members = explode("\n", str_replace(array("\r\n","\n\r","\r"),"\n",$digits));
      echo $members;
我得到的结果是:

ArrayArrayArrayArrayArray

fgets
从文件指针获取一行,因此理论上,
$line
中不应有
“\r”
“\n”
字符<代码>分解仍然有效,即使未找到分隔符。您将得到一个数组,其中包含一项,即整个字符串。但是,您不能回显数组。(这就是为什么每行都会看到
Array
;这是PHP在数组上使用
echo
时所能做的最好的事情。)

如果我是你,我宁愿使用
file()

$members = array_map('trim', file($fileName, FILE_IGNORE_NEW_LINES));
对于您展示的示例文件,这将导致

$members = ['13456', '23789', '14789', '09678', '45678'];

您可以简单地将这些行放入一个数组中,并使用print\u r而不是echo来打印该数组

while ($line = fgets($file)) {
  $members[] = $line;
}
print_r($members);

它应该取决于您正在处理的文件

文件类型:

  • text->fgets($file)
  • CSV->fgetcsv($file)

是否应在while循环中添加代码行?否,该行应在定义文件名后替换所有代码。无需循环如何调用$member函数以使数组中的字符串可以是整数?可以使用intval,但通常不需要。如果在数字上下文中使用数字字符串,PHP将自动将其转换为数字。对不起,最后一个问题是,有没有办法将结果放入矩阵中?