Редактирование текстовых файлов php - PullRequest
1 голос
/ 11 января 2012

У меня есть скрипт PHP для редактирования файлов, html, php и т.д ..

Он работает полностью, кроме случаев, когда вы вводите в поле формы textarea, например:

<div>
& nbsp; or & amp;
</div>

специальные символы автоматически преобразуются в один пробел и просто в амперсанд &.

Но цель редактора файлов состоит в том, чтобы ввести именно то, что вам нужно, и отобразить его, поскольку HTML-код может или не может быть написан в форме сущности, и я не хочу, чтобы они автоматически преобразовывались в их форма объекта. htmlspecialchars или htmlentities не работает, потому что тогда весь документ преобразуется в специальные символы

Источник просмотра документа при использовании htmlspecialchars:

&lt;!DOCTYPE html PUBLIC&gt;

&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Test&lt;/title&gt;

etc...

и затем он выводится в браузере как:

<!DOCTYPE html PUBLIC> <html> <head> <title>Test</title> </head> <body> TEST  x &nbsp; </body> </html>

У меня одна и единственная дилемма. Если просто удалить htmlspecialchars из обработки почтовых данных, то все будет работать отлично, за исключением того, что html-объекты автоматически преобразуются в читаемую форму, & nbsp; в космос и & amp; в амперсанд &

Есть идеи? Я знаю, что cPanel удалось как-то это сделать в их редакторе файлов, в net2ftp и во многих других текстовых редакторах файлов на основе Интернета.

Спасибо

1 Ответ

0 голосов
/ 14 января 2012

Если вы используете htmlspecialchars, он превратит все, что не алфавитно-цифровое, в html-сущность, поэтому он будет отображать символ в браузере, а не использовать его в качестве разметки.Вы могли бы, вероятно, сохранить все, что пользователь вводит в виде простого текста, а затем просто вернуть его обратно на страницу, когда это необходимо отобразить.Этот код работал, когда я попробовал его, потому что я верю в то, что вы пытаетесь сделать.

<?php
 $var = $_POST['var'];
 echo $var;

 ?>

<form id='form' action='' method='post'/>
<textarea form='form' name='var'></textarea>
<input type='submit' value='submit'/>

...