Простой PHP редактор текстовых файлов
Я создал сайт для клиента и он хочет иметь возможность редактировать небольшая часть главной страницы в виде серверной части решения. Поэтому в качестве решения я хочу добавить очень простой редактор (domain.com/backend/editor.php) когда вы его посещаете, у него будет текстовое поле с кодом и кнопкой сохранения. Код, который он будет редактировать, будет установлен в TXT-файл.
Я бы предположил, что такая вещь будет легко кодировать в PHP, но google не помог мне на этот раз, поэтому я надеюсь, что здесь может быть кто-то, кто укажет мне правильное направление. Обратите внимание, что у меня нет опыта программирования на PHP, только HTML и базовый javascript, поэтому, пожалуйста, будьте внимательны в любом ответе, который вы предоставляете.
7 ответов
вы создаете HTML-форму для редактирования содержимого текстового файла. Если он отправлен, вы обновляете текстовый файл (и перенаправляете его в форму снова, чтобы предотвратить предупреждения F5 / Refresh):
<?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>
читать файл:
<?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>
вы в основном ищете аналогичную концепцию с контактной формой или похожей.
применить те же принципы из учебника как этот и вместо электронной почты с помощью mail
проверьте файл функции от PHP.net.
что вы тогда Google на? php написать файл дает мне несколько миллионов просмотров.
а в руководство на fwrite()
:
<?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?), у него нет проверки безопасности (каждый может получить к нему доступ и изменить файл), и никоим образом он не читает файл для отображения на нужной странице.
Первое, что нужно сделать, это захватить информацию, самый простой способ сделать это было бы использование HTML-формы с TEXTAREA:
<form method='post' action='save.php'>
<textarea name='myTextArea'></textarea>
<button type='submit'>Go</button>
</form>
On ' сохранить.php ' (или где угодно) вы можете легко увидеть информацию, отправленную из формы:
<?php
echo $_POST['myTextArea']
?>
чтобы фактически создать файл, взгляните на команды fopen/fwrite в PHP, еще один упрощенный пример:
<?php
$handle = fopen("myFile.txt","w");
fwrite($handle,$_POST['myTextArea'];
fclose($handle);
?>
предупреждение: это чрезвычайно упрощенный ответ! Возможно, вы захотите защитить свою форму и твое досье или что-то другое.... Все вышеизложенное будет делать, это писать именно то, что было опубликовано в форме в файл. Если вы хотите указать разные имена файлов, перезаписать, добавить, проверить плохой контент / спам и т. д., Вам нужно будет сделать больше работы.
если у вас есть редактор, который является общедоступным и публикует контент на веб-странице, то защита от спама является определенным требованием или вы пожалеете об этом!
Если вы не заинтересованы в изучая PHP, вы должны подумать о том, чтобы профессиональный разработчик позаботился о любой работе с кодированием для вас!
У меня была аналогичная потребность, поэтому мы создали удобное для клиента решение под названием stringmanager.com мы используем на всех наших проектах и местах, где CMS не эффективна.
с вашей стороны вам просто нужно пометить строку в коде, т. е. от:
Эхо "текст, который он хочет отредактировать"; кому:
echo _t ("S_Texthewantstoedit");
stringmanager.com позаботится об остальном. Ваш клиент может управлять этой конкретной текстовой областью в нашем онлайн-приложении и синхронизировать куда захочет. Чуть не забыл упомянуть, это совершенно бесплатно.
<?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>
Не успели закончить его, простейший из возможных, добавит больше, если хотите.