#php
#php
Вопрос:
Я впервые прикасаюсь к PHP, поэтому то, что кажется, что это должно быть простой задачей, до сих пор было для меня довольно долгим проектом между поиском в Google и методом проб и ошибок, но я на финишной прямой с одной незначительной проблемой.
Я пишу форму, в основном для заметок о делах, поэтому я могу заполнить поля, нажать «Отправить», и она помещает все в соответствующий шаблон заметки о делах и записывает его в файл, который будет служить локальной резервной копией, поэтому мне не нужно делать это вручную.
Теперь в моей форме есть следующий раздел для примечаний к обращениям, который, вероятно, содержит несколько строк, абзацев и т. Д
Case Comments: <br>
<textarea name="comment" rows="10" cols="60"></textarea>
<P ALIGN="right"><input type="submit" name="Submit"></P>
Затем на странице вывода формы у меня есть следующее. после некоторого поиска я обнаружил, что для вывода мне пришлось добавить nl2br() для сохранения форматирования комментариев
<?php $comment = nl2br($_POST["comment"]);
echo $comment; ?><br>
Затем у меня есть следующее, чтобы записать его в файл
$txt = "C:pathtocasenotes.txt";
$fh = fopen($txt, 'a');
fwrite($fh,$comment.PHP_EOL);
fclose($fh)
В основном это все записывает просто отлично. Проблема в том, что выводимый тестовый файл заканчивается кодами разрыва строки html между разрывами строк в разделе комментариев, что я и пытаюсь удалить, если это вообще возможно сейчас. это то, что я получаю ниже
fsthyrew h<br />
<br />
asdfsaf<br />
<br />
<br />
asfd
Может быть, кто-нибудь может помочь мне указать правильное направление здесь?
Комментарии:
1. Не вызывайте
nl2br()
строку, которую вы хотите записать в файл. Это следует использовать только при записи на веб-страницу.2. Итак, вам нужны два разных формата, один для web и один для текстового файла. Но вы сразу же переводите его в веб-формат. Похоже, вам нужно сохранить
nl2br
файл, пока вы не отобразите его в Интернете, а не в исходных данных.3. Использование nl2br выполняется точно так, как он читается, от новой строки до разрыва строки. Вы должны использовать это при выводе на веб-страницу, но не в файл. Для вывода в файл вам потребуется указать символ новой строки, обычно n
Ответ №1:
Сделать:
fwrite($fh, $_POST['comment'].PHP_EOL);
При этом будет записан исходный текст комментария, без перевода новой строки <br/>
nl2br()
.
Кстати, вы можете сжать эти 4 строки, чтобы записать файл в просто:
file_put_contents($txt, $_POST['comment'].PHP_EOL, FILE_APPEND);