PHP文件

文件

文件是否存在(文件名)

检查文件或目录是否存在,如果指定的文件存在则返回TRUE,不存在则返回FALSE。

file_get_contents(文件名)

读取整个文件,以字符串形式返回其内容。

使用`file_put_contents(文件名, 字符串)`将字符串写入文件中。

将文字串写入文件。
将指定的文字串写入指定的文件。
如果要写入的文件不存在,则创建新文件。如果文件已存在,则覆盖原有文件。
通常使用的方式是
file_put_contents(文件名, json_encode(文字串))
要写入文件时,需要将PHP字符串转换为JSON格式,原因是文件(xxx.txt)是JSON格式的。

解析JSON字符串

解析JSON字符串。
解码JSON字符串。
将编码为JSON的数据返回为适当的PHP类型。
decode → 解码、解密、破译

json_encode(値) 的中文变体为:对値进行json编码。

将数值转换为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>';
}

将收到的消息存储到服务器上①

<p>投稿するメッセージを入力してください</p>
<form action="board-output.php" method="post">
<input type="text" name="message">
<input type="submit" value="投稿">
</form>
<?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>

将投稿的消息保存到服务器上。

</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>
<?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