データをテキストファイルに読み書きする
SplFileobjectのfwriteを使って、../data/mytext.txtに146バイトを書き出しました。
ファイルを読む
オープンモードの種類
"b"はバイナリーモードを指し、通常どのモードでも"b"を付加して指定します。ファイルポインタはファイル上の読み書きする位置のことです。
オープンモード | 説明 |
---|---|
rb | 読み書き専用 ファイルポインターは先頭 |
r+b | 読み書き可能 ファイルポインターは先頭 |
wb | 書き込み専用 内容を消して新規に書き込む。ファイルがなければ新規作成 |
w+b | 読み書き可能 それ以外wbと同じ |
ab | 書き込み専用 追記のみ。ファイルがなければ新規作成 |
a+b | 読み書き可能 読み込み位置はseek()で移動できるが、書き込みは追記のみ |
xb | 書き込み専用 ファイルを新規作成する。既にファイルがあるとエラー |
x+b | 読み書き可能 それ以外はxbと同じ |
cb | 書き込み専用 既存の内容を消さず先頭から書く。ファイルがなければ新規作成 |
c+b | 読み書き可能 それ以外はcbと同じ |
例外処理
try {
例外処理が組み込まれているメソッドを実行する
} catch(Exception $e) {
エラー処理を行うコード
} finaly {
エラーがあってもなくても実行するコード
}
※finalyはオプションなので省略可
例外処理が組み込まれているメソッドを実行する
} catch(Exception $e) {
エラー処理を行うコード
} finaly {
エラーがあってもなくても実行するコード
}
※finalyはオプションなので省略可
ファイル書き出しのソースコード
<?php
date_default_timezone_set('Asia/Tokyo');
$date = date("Y/n/j G:i:s", time());
$writedata = <<< "EOD"
ヒアドキュメント
途中で改行しても
変数を使った文章の作成が可能です!!
更新日:$date
EOD;
?>
<!doctype html>
<html lang="ja">
<head></head>
<body>
<header></header>
<div class="main-wrapper">
<?php
$filename = "../data/mytext.txt"; //保存するファイル名
try { //ファイルオブジェクトの作成
$fileobj = new SplFileObject($filename, "wb");
} catch (Exception $e) {
echo '<span class="error">エラーがありました</span>';
echo $e->getMessage();
exit();
}
//ファイルに書き込む
$written = $fileobj->fwrite($writedata);
if ($written === false) {
echo '<span class="error">ファイルに保存できませんでした</span>';
} else {
echo "SplFileobjectのfwriteを使って、<br>{$filename}に{$written}バイトを書き出しました。", "<HR>";
echo '<a href="readFile.php">ファイルを読む</a>';
}
?>
</div>
</body>
ファイル読み込みのソースコード
<?php
require_once("es.php"); //フォーム~入力データのチェック~で参照してね
?>
<!doctype html>
・・・・・・・↓
・・・・・・・↓
<?php
$filename = "../data/mytext.txt";
try {
$fileobj = new SplFileObject($filename, "rb");
} catch (Exception $e) {
echo '<span class="error">エラーがありました</span>';
echo $e->getMessage();
exit();
}
//ストリングを読み込む
$readdata = $fileobj->fread($fileobj->getSize());
if (!($readdata === FALSE)) {
$readdata = es($readdata);
//改行コードの前に<br>を挿入※HTMLエスケープ後に行う
$readdata_br = nl2br($readdata, false);
echo "{$filename}を読み込みました", "<br>";
echo $readdata_br, "<HR>";
echo '<a href="writeFile.php">ファイルに書き込む</a>';
} else {
echo '<span class="error">ファイルを読み込めませんでした</span>';
}
?>