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

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
您可以简单地将这些行放入一个数组中,然后使用 print_r 而不是 echo 来打印该数组
while ($line = fgets($file)) {
$members[] = $line;
}
print_r($members);
- 3 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消