保存更改多个文本文件
我的PHP代码中存在一些问题。我想加载两个.txt
用浏览器(铬,即任何)编辑,并通过一个按钮保存更改。到现在为止,我可以通过多个按钮来实现,但是如果您忘记保存一次丢失的更改,那就是冒险的缘故。保存更改多个文本文件
这里是我的代码:
<?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']
为了简化检查)
你好!感谢您的快速回答!我只是尝试进行更改,但是资源管理器显示这一点:致命错误:调用未定义的函数:file_put_contents()位于/homez.95/iloftyou/www/syntagma/editor/editor.php 40行 – user1249723
@ user1249723'file_put_contents'是PHP5中的一种方法,所以你不必使用'fopen'等。你在PHP4上吗?我真的建议你立即升级。 –
是的,你是对的!我忘了改变!这是一个我不再使用它的域名!谢谢您的帮助! – user1249723
非常感谢!我已经尝试过了,它对我来说工作得很好! brf ...我已经被卡住了,这是合乎逻辑的!当然他们必须采用相同的形式!再次感谢! – user1249723
(yei,最后我看到我不得不将fn换成fn1和fn2,但休息很棒!!!!:D) – user1249723