如何从Web界面将文本附加到PHP中的文件?

时间:2017-01-25 20:12:29

标签: php

我有一个文本文件。

name.txt(包含)

Sean:”allen”
Peter:”fletcher”
Jake:”wilson”

这是代码:

<?php

// set file to read
$filename = “name.txt”;
$newdata = $_POST['newd'];

if ($newdata != '') {
    // open file 
    $fw = fopen($filename, 'w') or die('Could not open file!');

    // write to file
    // added stripslashes to $newdata

    $fb = fwrite($fw,stripslashes($newdata)) or die('Could not write to file');
    // close file
    fclose($fw);
}

// print file contents

echo "<h3>DEV: Add/Remove Configurations</h3>
    <form action='$_SERVER[php_self]' method= 'post' >
    <textarea name='newd' cols='90%' rows='50'> $data </textarea>
    <input type='submit' value='Change'>
    </form>";
?>

如果我想添加,如何修复PHP脚本以将文本附加到name.txt 一条线(汤米:“约翰逊”)。现在,脚本会覆盖文件name.txt

===输出应为=== name.txt(应该包含)

  Sean:”allen”
  Peter:”fletcher”
  Jake:”wilson”
  Tommy: “Johnson”)

请指教! THX

1 个答案:

答案 0 :(得分:1)

您正在错误地打开文件,如果要将数据附加到文件末尾,请使用a+参数。 a+ =追加,如果文件不存在则创建

<?php

// set file to read
$filename = “name.txt”;
$newdata = $_POST['newd'];

if ($newdata != '') {
    // open file 
    //$fw = fopen($filename, 'w') or die('Could not open file!');
    $fw = fopen($filename, 'a+') or die('Could not open file!');

    // write to file
    // added stripslashes to $newdata

    $fb = fwrite($fw,stripslashes($newdata)) or die('Could not write to file');
    // close file
    fclose($fw);
}

// print file contents

echo "<h3>DEV: Add/Remove Configurations</h3>
    <form action='$_SERVER[php_self]' method= 'post' >
    <textarea name='newd' cols='90%' rows='50'> $data </textarea>
    <input type='submit' value='Change'>
    </form>";
?>