简单的PHP文本文件编辑器

时间:2011-11-22 12:38:57

标签: php editor backend html-editor

我为客户开发了一个站点,他希望能够在后端类型的解决方案中编辑主页的一小部分。所以作为一个解决方案,我想添加一个非常基本的编辑器(domain.com/backend/editor.php),当你访问它时,它将有一个包含代码和保存按钮的文本字段。它将编辑的代码将设置为TXT文件。

我认为这样的东西很容易在PHP中编码,但谷歌这次没有帮助我所以我希望这里可能会有人指出我正确的方向。请注意,我没有PHP编程经验,只有HTML和基本的javascript,所以请在您提供的任何回复中彻底。

8 个答案:

答案 0 :(得分:37)

您可以创建HTML表单来编辑文本文件的内容。如果它被提交,你更新文本文件(并再次重定向到表单以防止F5 /刷新警告):

<?php

// configuration
$url = 'http://domain.com/backend/editor.php';
$file = '/path/to/txt/file';

// check if form has been submitted
if (isset($_POST['text']))
{
    // save the text contents
    file_put_contents($file, $_POST['text']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}

// read the textfile
$text = file_get_contents($file);

?>
<!-- HTML form -->
<form action="" method="post">
<textarea name="text"><?php echo htmlspecialchars($text) ?></textarea>
<input type="submit" />
<input type="reset" />
</form>

答案 1 :(得分:3)

要阅读文件:

<?php
    $file = "pages/file.txt";
    if(isset($_POST))
    {
        $postedHTML = $_POST['html']; // You want to make this more secure!
        file_put_contents($file, $postedHTML);
    }
?>
<form action="" method="post">
    <?php
    $content = file_get_contents($file);
    echo "<textarea name='html'>" . htmlspecialchars($content) . "</textarea>";
    ?>
    <input type="submit" value="Edit page" />
</form>

答案 2 :(得分:0)

那时谷歌你做了什么? php write file给了我几百万次点击。

fwrite()的{​​{3}}一样:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// the content of 'data.txt' is now 123 and not 23!
?>

但说实话,你应该首先拿起一本PHP书并开始尝试。您没有发布任何单一要求,除了您要将文本字段(textarea,我的意思是?)发布到TXT文件。这样做:

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $handle = fopen("home.txt", 'w') or die("Can't open file for writing.");
    fwrite($fh, $_POST['textfield']);
    fclose($fh);
    echo "Content saved.";
}
else
{
    // Print the form
    ?>
    <form method="post">
        <textarea name="textfield"></textarea>
        <input type="submit" />
    </form>
    <?php
}

请注意,这与您的描述完全匹配。打印表单时它不会读取文件(因此每次要编辑文本时,都必须从头开始),它不会检查输入是否有任何内容(您是否希望用户能够发布HTML) ?),它没有安全检查(每个人都可以访问它并更改文件),并且它决不会读取文件以便在你想要的页面上显示。

答案 3 :(得分:0)

你基本上是在寻找与联系表格相似的概念。

this one这样的教程中应用相同的原则,而不是使用mail发送电子邮件,请查看PHP.net中的file functions

答案 4 :(得分:0)

要做的第一件事是捕获信息,最简单的方法是使用带有TEXTAREA的HTML表单:

<form method='post' action='save.php'>
  <textarea name='myTextArea'></textarea>
  <button type='submit'>Go</button>
</form>

在'save.php'(或任何地方),您可以轻松查看从表单发送的信息:

<?php
  echo $_POST['myTextArea']
?>

要实际创建文件,请查看PHP中的fopen / fwrite命令,这是另一个简单的例子:

<?php 
  $handle = fopen("myFile.txt","w");
  fwrite($handle,$_POST['myTextArea'];
  fclose($handle);
?>

警告:这是一个非常简单的答案!您可能希望保护您的表单和文件,或者做一些不同的事情......以上所做的只是将表单中发布的内容写到文件中。如果你想指定不同的文件名,覆盖,追加,检查不良内容/垃圾邮件等,那么你需要做更多的工作。

如果您有一个可公开访问的编辑器并将内容发布到网页,那么垃圾邮件防护是一项DEFINITE要求,否则您会后悔!

如果您对学习PHP不感兴趣,那么您应该考虑让专业的开发人员为您处理任何编码工作!

答案 5 :(得分:0)

我有类似的需求,所以我们创建了一个客户友好的解决方案,名为stringmanager.com,我们在所有项目和CMS无效的地方使用。

从您的角度来看,您只需在代码中标记字符串,即:

echo“他要编辑的文字”; 到:

echo _t(“S_Texthewantstoedit”);

stringmanager.com关注其余部分。您的客户可以在我们的在线应用程序中管理该特定文本区域,并在任何他想要的位置进几乎忘了提,它是完全免费的。

答案 6 :(得分:0)

可以使用以下代码行:

    <form action="" method="post">
    <textarea id="test" name="test" style="width:100%; height:50%;"><? echo "$test"; ?></textarea>
    <input type="submit" value="submit">
    </form>

答案 7 :(得分:-1)

<?php
$file = "127.0.0.1/test.html";
$test = file_get_contents('1.jpg', 'a');
if (isset($_POST['test'])) {
file_put_contents($file, $_POST["test"]);
};
?>
<form action="" method="post">
<textarea id="test" name="test" style="width:100%; height:50%;"><? echo "$test"; ?></textarea>
<input type="submit" value="submit">
</form>

Haven没有时间完成它,最简单的可能,如果需要的话会增加更多。