Php-将文件行读入数组
我的文件中的数字是5X5: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
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)