保存更改多个 TXT


save changes multiple txt

我的PHP代码遇到了一些问题。我想加载两个.txt以使用浏览器进行编辑(chrome,即任何),并通过一个按钮保存更改。到目前为止,我可以使用多个按钮来完成此操作,但是如果您忘记保存一个更改,那将是有风险的,因为如果您忘记保存一个更改,您将失去它。

这是我的代码:

<?php
$fn = "../txt/example.txt";
if (isset($_POST['agenda1a']))
{
    $content = stripslashes($_POST['agenda1a']);
    $fp = fopen($fn,"w") or die ("Error");
    fputs($fp,$content);
    fclose($fp) or die ("Error");
}
?>
  <div class="editor">
    <div class="editor_titulo">Agenda 1</div>
    <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
      <textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php readfile($fn); ?>
</textarea>
      <input name="submit" type="submit" class="btn_entrar" id="btn_guardar" value="  Guardar este menú  ">
    </form>
  </div>
  <?php
$fn = "../txt/example2.txt";
if (isset($_POST['agenda1b']))
{
    $content = stripslashes($_POST['agenda1b']);
    $fp = fopen($fn,"w") or die ("Error");
    fputs($fp,$content);
    fclose($fp) or die ("Error");
}
?>
  <div class="editor">
    <div class="editor_titulo">Agenda 2</div>
    <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
      <textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php readfile($fn); ?>
</textarea>
      <input type="submit" class="btn_entrar" id="btn_guardar" value="  Guardar este menú  ">
    </form>
  </div>

有什么办法吗?

您需要

<textarea>元素放在同一个<form>下。这可以通过您提供的代码来完成,但您可能需要进行一些样式更改,因为其中一个.editor元素被删除。

<?php
$fn1 = "../txt/example.txt";
if (isset($_POST['agenda1a']))
{
    $content = stripslashes($_POST['agenda1a']);
    $fp = fopen($fn,"w") or die ("Error");
    fputs($fp,$content);
    fclose($fp) or die ("Error");
}
$fn2 = "../txt/example2.txt";
if (isset($_POST['agenda1b']))
{
    $content = stripslashes($_POST['agenda1b']);
    $fp = fopen($fn,"w") or die ("Error");
    fputs($fp,$content);
    fclose($fp) or die ("Error");
}
?>
  <div class="editor">
    <div class="editor_titulo">Agenda 1</div>
    <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
      <textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php readfile($fn1); ?>
</textarea>
    <div class="editor_titulo">Agenda 2</div>
      <textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php readfile($fn2); ?>
</textarea>
      <input type="submit" class="btn_entrar" id="btn_guardar" value="  Guardar este menú  ">
    </form>
  </div>

当然,将所有字段(<textarea>元素)放入单个<form>标签中,并有一个保存按钮。

完成此操作后,您可以组合代码以保存两个文件。请注意,您一次只能从一个<form>获取已发布的值,这就是需要合并代码的原因。

这样的事情应该就足够了:

<?php
$file_one = "../txt/example.txt";
$file_two = "../txt/example2.txt";
$file_one_content = file_get_contents($file_one);
$file_two_content = file_get_contents($file_two);
if (isset($_POST['submit']))
{
    // Save the files
    $file_one_content = stripslashes($_POST['agenda1a']);
    file_put_contents($file_one, $file_one_content);
    $file_two_content = stripslashes($_POST['agenda1b']);
    file_put_contents($file_one, $file_two_content);
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
  <div class="editor">
    <div class="editor_titulo">Agenda 1</div>
      <textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php echo $file_one_content ?></textarea>
      <input name="submit" type="submit" class="btn_entrar" id="btn_guardar" value="  Guardar este menú  ">
  </div>
  <div class="editor">
    <div class="editor_titulo">Agenda 2</div>
      <textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php echo $file_two_content ?></textarea>
      <input type="submit" class="btn_entrar" id="btn_guardar" value="  Guardar este menú  ">
  </div>
</form>

(注意:上面的代码使用file_get_contents/file_put_contents,因此您可以在1行代码中打开/保存,并且仅检查$_POST['submit']以简单起见)