LoginSignup
1
2

More than 5 years have passed since last update.

PHP ファイル

Last updated at Posted at 2017-05-15

file

file_exists(ファイル名)

ファイルorディレクトリが
存在するかどうか調べる

指定したファイルが存在する場合にはTRUE、
存在しない場合にはFALSEを返す。

file_get_contents(ファイル名)

ファイルの全体を読み込み、
内容を文字列として返す

file_put_contents(ファイル名, 文字列)

文字列をファイルに書き込む
指定した文字列を、指定したファイルに書き込む。
書き込みを行うファイルが存在しない場合は、新規にファイルを作成する。存在する場合には既存のファイルを上書きする。
基本的に
file_put_contents(ファイル名, json_encode(文字列))
のように使う。
ファイルに書き込む場合は
json_encodeでPHP型の文字列をJSON形式に変換しないといけない。
なぜかというと、
ファイル(なんとか.txt)は
JSON形式だから。

json_decode(文字列)

JSON文字列を読み解く。
JSON文字列をデコードする。
JSONでエンコードされたデータを、適切なPHPの型として返す。

decode → 暗号を解く、平文に直す、解読する

json_encode(値)

値をJSON形式にして返す。

ファイルの読み込み(解説)

読み込むファイル(.txt)は元々JSON形式で保存されている。

PHPで扱いたい。

PHPで扱える形式に変換する必要ある。

そこで
json_decode(文字列)
を使う。

json_decode関数は、JSON形式の文字列を解釈して、
PHPの文字列や配列といったデータに変換する。

ファイルの書き込み

読み込むファイル(.txt)は
元々JSON形式で保存されているため、
メッセージの配列をJSON形式にする。

そこで
json_encode(値)
を使う。

json_encode(値)関数は、
値をJSON形式にして返す。

ファイル内の文字を表示

// foreach (配列 as ループ内変数)
foreach ($hitokoto as $value) {
    echo '<p>', $value, '</p><hr>';
}

投稿されたメッセージをサーバに保存する①

board-input.php
<p>投稿するメッセージを入力してください</p>
<form action="board-output.php" method="post">
<input type="text" name="message">
<input type="submit" value="投稿">
</form>
board-output.php
<?php
$file = 'memo53.txt';
// ファイルが存在する時だけファイルを読み込む
if (file_exists($file)) {
// file_get_contents(ファイル名)→ファイルの全体を読み込み、内容を文字列として返す
    $board = json_decode(file_get_contents($file));
}
$board[] = $_POST['message'];
file_put_contents($file, json_encode($board));
foreach ($board as $message){
    echo '<p>',$message,'</p><hr>';
}
?>
<button onclick="history.back()">戻る</button>

投稿されたメッセージをサーバに保存する②

test53-input.php
</br>How are you feeling today
</br>Please select one from these four.
</br>happy normal lonely sick
<form action="test53.php" method="post">
<input type="text" name="mood">
<input type="submit" value="投稿">
</form>
test53.php
<?php
$file1 = 'memo54.txt';
if(file_exists($file1)){
// json_decode()→JSON形式をPHPの型で返す
    $hitokoto = json_decode(file_get_contents($file1));
}
$hitokoto[] = $_POST['mood'];
if($_POST['mood'] == 'happy'){
    $hitokoto[] = 'good!';
}else if($_POST['mood'] == 'normal'){
    $hitokoto[] = 'ok';
}elseif ($_POST['mood'] == 'lonely'){
    $hitokoto[] = 'Are you ok?';
}elseif ($_POST['mood'] == 'sick'){
    $hitokoto[] = 'Cheer up!';
}

// file_put_contents(ファイル名, 文字列)
// 指定した文字列を指定したファイルに書き込む
// json_encode()→JSON形式にして返す
file_put_contents($file1, json_encode($hitokoto));
// foreach (配列 as ループ内変数)
foreach ($hitokoto as $value) {
    echo '<p>', $value, '</p><hr>';
}
?>
<button onclick="history.back()">戻る</button>

20170519.png

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2