Экранирование спецсимволов

Yuriev

Новичок
Здравствуйте! Прошу помощи.
Из формы с textarea приходит текст с любыми символами, включая ', ", \.
Надо этот текст положить в файл в виде строки кода, потом инклудить этот файл и распечатать в браузер.
Вот код index.php
<?php
if (isset($_POST['go'])) {
$text = $_POST['textarea'];
$ret = '<?php
$htmltext = \''.$text.'\';';
$fd = fopen('page.php', 'w');
$s = fwrite($fd, $ret);
fclose($fd);
}
include 'page.php';
?>
<html>
<body>
<form method="post">
<textarea name="textarea"><?php echo $htmltext ?></textarea>
</form>
</body>
</html>

Пробовал экранировать addslashes и доставать stripslashes вместе и по отдельности, придумывал своё типа $text = str_replace("'", "\'", $_POST['textarea']); но не получилось.
Спасибо.
 

Yuriev

Новичок
AnrDaemon, спасибо за ответ, точнее за вопросы, на которые я вам с удовольствием отвечаю.
Да, я знаю что такое textarea и HTML, знаю о существовании функций преобразования данных и про "<?=" в курсе.
На всякий случай отвечу заранее на вопрос, который может у кого-нибудь возникнуть.
Я ещё не умею выбирать нужные функции и ими пользоваться. Я только учусь.
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
@Yuriev, раз только учишься, то запомни - htmlspecialchars надо использовать всегда, когда выводишь данные в HTML.
Пишешь <?= или <? echo - значит, сразу надо писать htmlspecialchars.

А еще лучше использовать template engines, которые это делают автоматически, например Twig.
 
Сверху