使用HTML表单用PHP重写文件
因此,我正在处理一个小php文件,它应该为用户修改一个特定的文件。它获取文件的内容并将其放入表单中的文本区域。我如何才能使此文本区域内所做的任何编辑都被重写到服务器上的文件中?甚至更好的是,我能允许用户只编辑某些行,并且只重写那些行吗 以下是我目前的代码:使用HTML表单用PHP重写文件,php,html,forms,rewrite,Php,Html,Forms,Rewrite,因此,我正在处理一个小php文件,它应该为用户修改一个特定的文件。它获取文件的内容并将其放入表单中的文本区域。我如何才能使此文本区域内所做的任何编辑都被重写到服务器上的文件中?甚至更好的是,我能允许用户只编辑某些行,并且只重写那些行吗 以下是我目前的代码: <?php $filename = "../tree_c/index.php"; //$fp = fopen ($filename, "w"); <- doesn't seem to work for it opens empty
<?php
$filename = "../tree_c/index.php";
//$fp = fopen ($filename, "w"); <- doesn't seem to work for it opens empty file.
$contents = file_get_contents($filename);
/*
if (isset($_POST['field'])) {
// something here to rewrite the file.
*/
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="field"><?php echo $contents ?></textarea>
<input type="submit" value="Save">
</form>
这应该很容易做到:
if (isset($_POST['field'])) {
file_put_contents($filename, $_POST['field']);
}
希望这能帮助您……您需要第二个PHP页面来处理所做的编辑并保存它们。别忘了,PHP只是服务器端。您需要使用JavaScript来处理用户界面,并将数据发送回PHP进行处理。如果您希望客户端的所有更改都保存在服务器中,则需要一些JavaScript-Ajax。噢,当我说您需要第二个PHP页面时,这是一种不太容易混淆的方式。一个页面生成HTML来编辑文件,然后另一个页面用于保存文件。完全有可能合并这两个文件,这不是将字段内容附加到末尾吗?否。如:“如果文件名不存在,则创建文件。否则,将覆盖现有文件,除非设置了文件附加标志”。如果你不指定文件,你很好。非常好,谢谢!现在,有没有办法只允许编辑某些行,而只重写那些行?控制要编辑的行最好通过JavaScript完成。尽管您可以使用PHP提取这些行,并且有一系列段落用于只读行,表单输入字段用于可写行。不过,您需要通过PHP对其进行验证,以确保没有对网页进行修补
$datafile = "Files.txt";
$fp = fopen($datafile, "r");
$textdata= fgets($fp, 1024);
$text = '"'.$textdata.'"';
$this->set('text',$text);
if(!empty($this->data))
{
$datas = $this->data['data']['text']; //(your Textarea name)
$myFile = "Files.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $datas);
fclose($fh);
}