Editor de PHP simples de ficheiros de texto
7 answers
Você cria um formulário HTML para editar o conteúdo do ficheiro de texto. No caso de ser submetido, você atualiza o ficheiro de texto (e redireciona para o formulário novamente para evitar avisos 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>
Para ler o ficheiro:
<?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>
Aplicar os mesmos princípios a partir de um tutorial como este e em vez de enviar e-mail usando mail
verificar as funções de ficheiros de PHP.net.
Como no manual para 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!
?>
Mas, para ser honesto, devia primeiro pegar num livro do PHP e começar a tentar. Você não postou nenhum requisito único, a não ser que você quer postar um campo de texto (textarea quero dizer?) para um ficheiro TXT. Isto serve.
<?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
}
Note que isto corresponde exactamente à sua descrição. Ele não lê o arquivo ao imprimir o formulário (por isso, todas as vezes você quer editar o texto, você tem que começar do zero), ele não verifica a entrada para nada (você quer que o usuário seja capaz de postar HTML?), não tem verificação de segurança (todos podem acessá-lo e alterar o arquivo), e de forma alguma ele lê o arquivo para exibição na página que você deseja.
A primeira coisa a fazer é capturar a informação, a maneira mais simples de fazer isso seria o uso de um formulário HTML com um TEXTAREA:
<form method='post' action='save.php'>
<textarea name='myTextArea'></textarea>
<button type='submit'>Go</button>
</form>
Em 'Salvar.php' (ou seja onde for) você pode facilmente ver as informações enviadas a partir do formulário:
<?php
echo $_POST['myTextArea']
?>
Para criar realmente um ficheiro, dê uma vista de olhos nos comandos fopen/fwrite em PHP, outro exemplo simplista:
<?php
$handle = fopen("myFile.txt","w");
fwrite($handle,$_POST['myTextArea'];
fclose($handle);
?>
Atenção: esta é uma resposta extremamente simplista! Você talvez queira proteger seu formulário e seu arquivo, ou fazer algum coisa.... Tudo o que acima fará é escrever exatamente o que foi postado no formulário para um arquivo. Se você quiser especificar diferentes nomes de arquivos, sobrepor, adicionar, verificar por conteúdo ruim/spam, etc então você vai precisar fazer mais trabalho.
Se você tem um editor que é acessível ao público e publica conteúdo para uma página web, então a proteção contra spam é um requisito definido ou você vai se arrepender!
Se você não está interessado em aprender PHP então você deve pensar sobre obter um desenvolvedor profissional para cuidar de qualquer trabalho de codificação para você!
Do teu lado, só precisas de marcar o texto no código, ou seja, de:
Echo "texto que ele quer editar"; to:Echo _t ("S_Texthewantstoedit");
Stringmanager.com cuida do resto. O seu cliente pode gerir essa área de texto em particular na nossa aplicação online e sincronizar onde quiser. Quase esqueci de mencionar, é completamente livre.
<?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>
{[[2]}ainda não tive tempo de terminá-lo, o mais simples possível, vai adicionar mais se quiser.