保存更改多个txt
Posted
技术标签:
【中文标题】保存更改多个txt【英文标题】:save changes multiple txt 【发布时间】:2013-02-03 11:16:10 【问题描述】:我的 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>
有什么办法吗?
【问题讨论】:
【参考方案1】:您需要将<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>
【讨论】:
非常感谢!我已经尝试过了,对我来说效果很好! brf ...我被困住了,这是合乎逻辑的!当然,它们必须是相同的形式!再次感谢! (是的,我终于看到我必须将 fn 更改为 fn1 和 fn2,但是休息很好!!!:D)【参考方案2】:当然,将所有字段(<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']
)
【讨论】:
你!谢谢你的快速回答!!我刚刚尝试进行您建议的更改,但资源管理器显示:致命错误:调用未定义函数:第 40 行 /homez.95/iloftyou/www/syntagma/editor/editor.php 中的 file_put_contents() 跨度> @user1249723file_put_contents
是 PHP5 中的一个方法,所以你不必使用 fopen
等。你在 PHP4 上吗?我真的建议你立即升级。
是的,你是对的!我忘记改了!!啊,这是一个 oooooold 域,我不再使用它了!感谢您的帮助!以上是关于保存更改多个txt的主要内容,如果未能解决你的问题,请参考以下文章
如何将更改保存到现有的 excel 文件,而不是创建包含更改的 txt 文件?
我的代码有啥问题,尝试保存更改的 txt 文件,但没有任何反应