Задать вопрос
@germanberg

Как реализовать запись текста и удаление его из txt?

<form action="subscription-script.php" method="post">
<input type="text" name="email" /><br/>
<input type="submit" name="btn" />
</form>


<?php
if(isset($_POST['btn']) and !empty($_POST['email']))
{
$email = $_POST['email'];
$file=fopen("maillist.txt", "a");
fwrite($file, $_POST['email'] . PHP_EOL);
fclose($file);
}
?>


эта форма записывает емаил в maillist.txt, но как сделать форму удаления нужного емаила?
(делаю подписку) готовые решения которые есть в инете или корявые или по каким то соображениям мне не подходят. Помогите кто чем может)
нужно сделать еще одну форму
<?php
$file = fopen('maillist.txt', 'r');
    $text = fread($file, filesize('maillist.txt'));
    fclose($file);
    $file = fopen('maillist.txt', 'w');
    fwrite($file, str_replace('текст который нужно удалить', '', $text));
    fclose($file);
?>


как этот код прикрутить к форме?
<form action="subscription-script-del.php" method="post">
<input type="text" name="email" /><br/>
<input type="submit" name="btn" /> (удалить)
</form>
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
Вот код для добавления email (subscription-script.php):
<?php
if(isset($_POST['btn']) and !empty($_POST['email']))
{
$email = $_POST['email'].PHP_EOL;
file_put_contents ("maillist.txt", $email,FILE_APPEND);
}
?>

Вот обработчик формы для удаления email (subscription-script-del.php)
<?php
if (isset($_POST['btn']) AND iiset ($_POST['email']) ) {
$text = file_get_contents("maillist.php");
$email = $_POST['email'];
$newcontent = str_replace($email, '', $text);
file_put_contents ("maillist.php",$newcontent);
}
?>

И да, txt здесь выбирать нежелательно. Почему бы не записывать в базу данных MySQL? Это же намного проще.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Хранить в txt не особо удобно. Я бы посоветовал стандартный вариант в виде mysql но видимо Вас он не устраивает, раз идет речь о костылях. Могу предложить хранить в php файле, в котором будет следующая структура
<?php
return [
'email1'=>['someData'=>'natasha'],
'email2'=>['someData'=>'petya'],
];

и т.д.
при этом можно получать массив и соответственно искать в нем что угодно. Так же есть удобные форматы json, xml, csv. Есть и key-value хранилища (db-engines.com/en/ranking/key-value+store)
txt самый странный выбор, он удобен для логов и т.д. То что не надо редактировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы