我正在学习在 php 中处理文件,首先我创建了这个函数来写入文件,它非常简单:
function zapis_do_suboru($zapisovany_subor, $obsah_suboru)
{
$pracovny_subor = fopen($zapisovany_subor,"w") or die("Chyba pri otvarani suboru");
fwrite($pracovny_subor, $obsah_suboru) or die("Nejde zapisovat do suboru");
fclose($pracovny_subor);
echo "Zapis $zapisovany_subor prebehol uspesne.";
}
然后我创建了从文件中读取的函数,但我很少被困在这里,因为我的书正在解释如何只读取一行,但后来我用谷歌搜索了一下,找到了一些解决方案,并制作了这个函数来从文件中读取:
function citanie_zo_suboru($citany_subor)
{
$pracovny_subor = fopen($citany_subor,"r") or die("Chyba pri otvarani suboru");
$j = 0;
while(!feof($pracovny_subor))
{
$pole[$j] = array(fgets($pracovny_subor, 4096));
$j++;
}
fclose($pracovny_subor);
return $pole;
}
然后我想测试它,所以我创建了两个变量:
$subor = "textsubor.txt";
$text = <<<_END
Riadok1 blabla
Riadok2 blabla
Riadok3 meno suboru: $subor
_END;
而这个函数调用:
zapis_do_suboru($subor, $text);
echo "<br />";
foreach (citanie_zo_suboru($subor) as $index =>$popis)
echo $popis."<br />";
但问题是,函数 citanie_zo_suboru 正在创建二维数组,所以输出只是“数组数组数组”。通过 print_r 和一点点尝试,我发现,当我改变时:
foreach (citanie_zo_suboru($subor) as $index =>$popis)
echo $popis."<br />";
到:
foreach (citanie_zo_suboru($subor) as $index =>$popis)
echo $popis[0]."<br />";
它正在做我想要的。有人能告诉我为什么我的函数是创建二维而不只是经典的一维数组吗?如果可以的话,我将不胜感激。谢谢