1

私のテキストファイルには以下が含まれています:

a
b
c
d
e

入力ボックス 'data' に入力したもので 3 行目のみを上書き (つまり、"c" を置き換える) できるように、コードを修正する方法がわかりません。私のコードは次のとおりです。現在、入力ボックスの「データ」の内容がファイルを完全に置き換えています。

$data = $_POST['data'];
$file = "data.txt"; 

$fp = fopen($file, "w") or die("Couldn't open $file for writing");

fwrite($fp, $data) or die("Couldn't write values to file"); 
fclose($fp);

私はそれを逆に動作させています。つまり、以下のコードは、ページが最初に読み込まれたときに3行目のみをテキストボックスに読み込みます:

$file = "data.txt";
$lines = file( $file ); 
echo stripslashes($lines[2]);

これを達成するために使用する必要があるコードを誰かアドバイスできますか?

4

1 に答える 1

4

唯一の方法は、ファイル全体を読み取り、3 行目を変更してから、すべて書き戻すことです。基本的には、次のようになります。

$lines = file($file);
$lines[2] = $_POST['data'];
file_put_contents($file, implode("\n", $lines));

ところで、読み取りコードは3行目を「のみ」読み取るわけではありません.file()に従ってすべての行を読み取り、3行目のみを使用します.

于 2012-10-30T12:08:36.100 に答える