PHP file_get_contents/file_put_contents を介した読み取り/書き込みに問題があります。基本的に、テキストファイルをテキストエリアに読み込み([ファイルの編集]ボタンをクリック)、編集して変更を送信し([変更を送信]ボタン)、新しいファイルの内容でテキストエリアを再描画できるようにしたいと考えています。
ちゃんと読めます。
ファイルのすべてのコンテンツを削除し、上書き/更新せずに空白のファイルを残します。
テキストエリアのコンテンツを取得して、ファイルの新しいコンテンツとして入力できないようです。私はそれが些細なことだと知っていて、それを見逃しています。
Win Apache サーバー上で実行されます。
コード:
<html>
<body>
<form name="form" method="POST">
<input type="submit" name="pickedName" value="Edit File" />
<input name="file_picked" value="1.txt" type="text" id="file_picked" style="width:250px;" />
<input type="submit" name="submitChanges" value="Submit Changes">
</form>
<?php
$file_picked = $_POST['file_picked'];
$edit_field = $_POST['edit_field'];
if (isset($_POST['pickedName'])) {
//get file contents and display in textarea box
$theData = file_get_contents($file_picked);
echo "<textarea name=\"edit_field\" id=\"edit_field\" cols=\"150\" rows=\"30\">";
echo $theData;
echo "</textarea><br />";
}
if (isset($_POST['submitChanges'])) {
//grab new textarea contents and put into file.
$theData = file_put_contents($file_picked, $edit_field);
//redraw textarea with new contents
$theData = file_get_contents($file_picked);
echo "<textarea name=\"edit_field\" id=\"edit_field\" cols=\"150\" rows=\"30\">";
echo $theData;
echo "</textarea><br />";
}
?>
</body>
</html>
任意のポインタをいただければ幸いです。