私は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.";
}
次に、ファイルから読み取るための関数を作成しましたが、私の本は1行だけを読み取る方法を説明しているため、ここで少し立ち往生しましたが、少しグーグルして解決策を見つけ、ファイルから読み取るためのこの関数を作成しました:
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;
}
次に、それをテストしたかったので、2 つの変数を作成します。
$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が2次元配列を作成しているため、出力が「配列配列配列配列」だけだったことです。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 />";
それはまさに私が望んでいたことをしています。私の関数が従来の 1 次元配列だけでなく 2 次元を作成している理由を教えてもらえますか? できれば本当にありがたいです。ありがとう