Как предотвратить запись html-кода в "базу данных"?
Принцип работы моего кода следующий: если во входной строке есть такие смайлики (":)", ":("), то их нужно заменить картинками. Вот как я это делаю:
$smile = array(":)", ":(");
$grafic = array("<img src = './image/Smile.png' alt='Smile' align='middle'>",
"<img src = './image/Sad.png' alt='Smile' align='middle'>");
$new_message = str_replace($smile, $grafic, $message);
$file = "../data/messages.json";
$json_content = json_decode(file_get_contents($file), true);
if (!empty($new_message)) {
$json_content[] = array("time" => $time, "user" => $user, "message" => $new_message);
file_put_contents($file, json_encode($json_content, JSON_PRETTY_PRINT));
}
Но тогда я должен записать уже измененную строку, которую я пишу в "базе данных" (json
файл) и там мы можем видеть следующее:
[
{
"time": "1499985376",
"user": "Max",
"message": "Hello <img src = '.\/image\/Smile.png' alt='Smile' align='middle'>"
}
]
Как я могу написать слово "улыбка" или "грустно" вместо HTML
теги?
1 ответ
- Просто создайте новую переменную и сохраните сообщение перед внесением изменений, например:
$rawMessage = $message;
, - Затем используйте
$rawMessage
сохранить сообщение в базе данных.