7-3. php実践③ファイルの操作
7章続き進めます。21章までまだまだこんだけある。笑
やっと1/3ってとこかな。
今回は、ファイルやディレクトリを操作する関数について勉強します。
webサーバーにデータを保持する方法ではなく、ハードディスクにあるファイルに直接アクセスするほうが便利な時もありその時に使える関数について紹介していきます。
1-1.ファイルを読み込む
ファイルを読み込む際には『file_get_contents関数』を使います。
text.txtというファイルを読み込んでみます。
$filename="text.txt";
if (is_readable($filename))
{
$contents = file_get_contents($filename);
echo $contents;
}
else{
echo$filename,"は読み込めません。";
}
?>
結果としてローカルサーバーにおいたtext.txtを読み込んで「こんにちは」と表示がでます。
また、ローカルサーバーにこのファイルがないときは以下が表示されます。
1-2.ファイルにデータを書き込む
ファイルにデータを書き込むときは『file_put_contents関数』を使用します。この関数には、fopen、fwrite、fread、fcloseの機能により読み込みの処理を実行します。
各概要を以下にまとめました。
読み込み関数 | 機能 |
---|---|
fopen関数 | ファイルを開く際の呼び出し。ここでファイルオープン時の呼び出し方法(読み込み専用、書き込み専用等)を指定できる |
fwrite関数 | 他の関数を呼び出してファイルの書き込みを行う |
fread関数 | 他の関数を呼び出してファイルの読み込みを行う |
fclose関数 | ファイルを閉じて終了する |
試しにサンプルを作ってみました。テキストファイルにはHelloWorldと書いてあります。
$fh=fopen ("text.txt",'r' ) or
die("このファイルは読み込めません");
$text = fread($fh,7);
fclose($fh);
echo $text;
?>
結果はこちら。
7文字目まで表示されるはずが、、、4文字やんか。。。。なぜだ。。。
調べてみると7と書いたから7文字表示されるのではなく、バイト単位らしいです、これ。7バイト分読み込んでねってなってるってことか。。
1-3.ファイルをコピーする
ファイルをコピーするには『copy関数』を使用します。
text.txtをコピーしてtext2.txtというファイルを作成してみます。
if (copy("text.txt" , "text2.txt"))
{
echo"コピーに成功しました";
}
else{
echo"コピーに失敗しました";
}
?>
すげー!text2ファイルができてる...
こんな些細なことでも感動してしまいます。
1-4.ファイルを削除する
ファイルを削除するときは『unlink関数』を使います。unlink関数にファイル名を指定して実行すると、ファイルが削除され正常に削除されるとTRUEが表示されます。
先ほどコピーしたtext2.txtを削除してみます。
$filename="text2.txt";
if(is_file($filename)&& unlink($filename))
{echo$filename."を削除しました";
}else{
echo$filename."は削除できません";
}
?>
結果は期待通り、text2.txtが削除されました。すげー。
上記コードでは、text2.txtがあるのかをis_file関数で調べて正常に削除できたらTRUEと評価するようにしました。
一旦いじょう。
明日また更新します。ふぁいとー♪( ´θ`)ノ