PHPサンプル
UPDATE:2017年04月01日
ファイル作成と書込み読込み一式
ファイル作成と書き込み読み込み
ファイルを作成・書き込み・読み込み・閉じるまでの一連の流れ
- file_exists()ファイル存在を確認(同じファイルが存在しているかどうか)
↓ - touch()ファイルを作成
↓ - chmod()ファイルのモード(パーミッション)の変更
↓ - fopen()ファイルをオープン
↓ - flock()ファイルのロック
↓ - fwrite()ファイルへ書き込み
↓ - flock()ファイルのアンロック
↓ - is_readable()ファイルの存在を確認、読み込み可能かチェック
↓ - file_get_contents()ファイルの読み込み
↓ - fclose()ファイルを閉じる
↓ - ファイルの作成/書き込み/読み込み/ の成功
file_exists()
論理値 = file_exists(ファイルかディレクトリへのパス);
ファイルまたはディレクトリが存在するかどうか調べます。指定したファイルやディレクトリが存在する場合は、TRUE を返します。そうでなければ、 FALSE を返します。
POINT
- この関数は セーフモード の制限のためファイルにアクセスできない場合 FALSE を返す
- 失敗したときは E_WARNING が発生する
touch()
論理値 = touch(ファイルパス);
ファイルが存在しない場合はファイルが生成されます。成功した場合に TRUE を、失敗した場合に FALSE を返します。
chmod()
論理値 = chmod(ファイルパス, モードの指定); //0644 所有者に読み込み、書き込みの権限を与え、その他には読み込みだけ許可する。 //0755 所有者に全ての権限を与え、その他には読み込みと実行を許可する。
ファイルのモードを変更します。成功した場合に TRUE を、失敗した場合に FALSE を返します。
fopen()
リソース = fopen(ファイルパス, モードの指定);
ファイルやURLをオープンする。エラー時に FALSE を返します。
flock()
論理値 = flock(リソース, オペレーションの指定);
ファイルやURLをオープンする。成功した場合に TRUE を、失敗した場合に FALSE を返します。
オペレーション
共有ロック(読み手)とするには LOCK_SH をセットします。
排他的ロック(書き手)とするには LOCK_EX をセットします。
(共有または排他的)ロックを開放するには LOCK_UN をセットします。
fwrite()
書き込んだバイト数 = fwrite(リソース, 書き込む文字列);
バイナリセーフなファイル書き込み処理を行います。エラー時に FALSE を返します。
is_readable()
論理値 = is_readable(ファイルパス);
ファイルの存在を確認し、ファイルが読み込み可能か調べます。読み込み可能であれば TRUE を、それ以外の場合は FALSE を返します。
file_get_contents()
読み込んだデータ = file_get_contents(読み込むファイルパス);
指定したファイルを読み込み内容を取得します。失敗した場合に FALSE を返します。
POINT
- 空白のような特殊な文字を有する URI をオープンする場合には、 urlencode() でその URI をエンコードする必要がある
fclose()
論理値 = fclose(リソース);
オープンされたファイルポインタ(リソース)をクローズします。成功した場合に TRUE を、失敗した場合に FALSE を返します。
サンプルコード
以下をご自分の環境に合わせて書き換えて下さい。
$sPath = '/●●●●●サーバーディレクトリパス●●●●●/'.$sFileName;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <!-- サンプルコード --> <h3>ファイル作成と書き込み読み込み</h3> <?php //ファイル名 $sFileName = date('YmdHis').'.txt'; //ファイルパス $sPath = '/●●●●●サーバーディレクトリパス●●●●●/'.$sFileName; //書き込む内容 $sWriteContents = "1行目1項目目\t1行目2項目目\t1行目3項目目\n"; $sWriteContents .= "2行目1項目目\t2行目2項目目\t2行目3項目目\n"; $sWriteContents .= "3行目1項目目\t3行目2項目目\t3行目3項目目"; //ファイルの存在確認 if(file_exists($sPath)){ echo '・指定ファイルが既に存在しております。'; exit; }else{ echo '・ファイルの存在確認完了。<br>'; } //ファイルを作成 if(touch($sPath)){ echo '・ファイル作成完了。<br>'; }else{ echo '・ファイル作成失敗。<br>'; exit; } //ファイルのパーティションの変更 if(chmod($sPath,0644)){ echo '・ファイルパーミッション変更完了。<br>'; }else{ echo '・ファイルパーミッション変更失敗。<br>'; exit; } //ファイルをオープン if($filepoint = fopen($sPath,"w")){ echo '・ファイルオープン完了。<br>'; }else{ echo '・ファイルオープン失敗。<br>'; exit; } //ファイルのロック if(flock($filepoint, LOCK_EX)){ echo '・ファイルロック完了。<br>'; }else{ echo '・ファイルロック失敗。<br>'; exit; } //ファイルへ書き込み if(fwrite($filepoint,$sWriteContents)){ echo '・ファイル書き込み完了。<br>'; }else{ echo '・ファイル書き込み失敗。<br>'; exit; } //ファイルのアンロック if(flock($filepoint, LOCK_UN)){ echo '・ファイルアンロック完了。<br>'; }else{ echo '・ファイルアンロック失敗。<br>'; exit; } //ファイルを読み込む if(is_readable($sPath)){ //ファイル内容を変数に格納 $vContents = file_get_contents($sPath); echo '・ファイル ['.$sFileName.'] 読み込み完了。<br>'; //ファイル内容を配列に変換 行を取得 $aCcontents = explode("\n", $vContents); //読み込み内容を展開 echo '<table border="1">'; foreach($aCcontents as $aContentsRecords){ echo '<tr>'; $aContentsFields = explode("\t", $aContentsRecords); //ファイル内容を配列に変換 列を取得 foreach($aContentsFields as $data){ echo "<td>{$data}</td>"; } echo '</tr>'; } echo '</table>'; }else{ echo '・ファイル ['.$sFileName.'] 読み込み失敗。<br>'; exit; } //ファイルを閉じる if(fclose($filepoint)){ echo '・ファイルクローズ完了。<br>'; }else{ echo '・ファイルクローズ失敗。<br>'; exit; } ?> |
実行結果
ファイル作成と書き込み読み込み
・ファイルの存在確認完了。
・ファイル作成完了。
・ファイルパーミッション変更完了。
・ファイルオープン完了。
・ファイルロック完了。
・ファイル書き込み完了。
・ファイルアンロック完了。
ファイル [20131206011317.txt] を読み込みました。
・ファイルの存在確認完了。
・ファイル作成完了。
・ファイルパーミッション変更完了。
・ファイルオープン完了。
・ファイルロック完了。
・ファイル書き込み完了。
・ファイルアンロック完了。
ファイル [20131206011317.txt] を読み込みました。
1行目1項目目 | 1行目2項目目 | 1行目3項目目 |
2行目1項目目 | 2行目2項目目 | 2行目3項目目 |
3行目1項目目 | 3行目2項目目 | 3行目3項目目 |
・ファイルクローズ完了。
タグ(=記事関連ワード)
日付
投稿日:2012年3月2日
最終更新日:2017年04月01日
最終更新日:2017年04月01日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsample-file-create/trackback/