Php - 将文件行读入数组

我文件中的数字是 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


长风秋雁
浏览 207回答 3
3回答

精慕HU

fgets从文件指针获取一行,所以理论上应该没有"\r"or"\n"中的字符$line。explode即使没有找到分隔符,它仍然可以工作。你最终会得到一个包含一个项目的数组,整个字符串。但是,您不能回显数组。(这就是你看到每一行的原因;当你在数组上Array使用时,这是 PHP 可以做的最好的事情。)echo如果我是你,我宁愿直接使用file()。$members = array_map('trim', file($fileName, FILE_IGNORE_NEW_LINES));使用您展示的示例文件,这应该会导致$members = ['13456', '23789', '14789', '09678', '45678'];

海绵宝宝撒

您可以简单地将这些行放入一个数组中,然后使用 print_r 而不是 echo 来打印该数组while ($line = fgets($file)) {  $members[] = $line;}print_r($members);

白衣非少年

它应该取决于您正在处理的文件。文件类型:文本 -> fgets($file)CSV -> fgetcsv($file)
打开App,查看更多内容
随时随地看视频慕课网APP