为了账号安全,请及时绑定邮箱和手机立即绑定

Php - 将文件行读入数组

Php - 将文件行读入数组

PHP
长风秋雁 2022-01-24 10:59:43
我文件中的数字是 5X5:1345623789147890967845678我正在尝试将其放入这种形式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
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

fgets从文件指针获取一行,所以理论上应该没有"\r"or"\n"中的字符$lineexplode即使没有找到分隔符,它仍然可以工作。你最终会得到一个包含一个项目的数组,整个字符串。但是,您不能回显数组。(这就是你看到每一行的原因;当你在数组上Array使用时,这是 PHP 可以做的最好的事情。)echo

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

$members = array_map('trim', file($fileName, FILE_IGNORE_NEW_LINES));

使用您展示的示例文件,这应该会导致

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


查看完整回答
反对 回复 2022-01-24
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您可以简单地将这些行放入一个数组中,然后使用 print_r 而不是 echo 来打印该数组


while ($line = fgets($file)) {

  $members[] = $line;

}

print_r($members);


查看完整回答
反对 回复 2022-01-24
?
白衣非少年

TA贡献1155条经验 获得超0个赞

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

文件类型:

  • 文本 -> fgets($file)

  • CSV -> fgetcsv($file)


查看完整回答
反对 回复 2022-01-24
  • 3 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号