【问题标题】:How to prevent html code from being written to the "database"?如何防止将html代码写入“数据库”?
【发布时间】:2017-07-13 23:25:05
【问题描述】:

我的代码的工作原理如下:如果输入行中有这样的笑脸(“:)”,“:(”),那么你需要用图片替换它们。这是我的做法:

$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 标签?

【问题讨论】:

  • 您为什么不将其保留为原始格式或相同的某些固定版本(例如:smile:),然后在需要将其显示为 HTML 时处理转换?
  • @tadman 我该怎么做?
  • 第 1 步:将:) 转换为您想要的任何符号。第二步:保存。第 3 步:编写另一个函数将其转换为 HTML。

标签: php json database smile


【解决方案1】:
  1. 只需创建一个新变量并保存消息,然后再创建 更改,例如:$rawMessage = $message;
  2. 然后使用$rawMessage 将消息保存到数据库中。

【讨论】:

  • 但是现在我有一个小问题:你看,在我将数据写入文件之后,我需要从文件中获取它们并显示在屏幕上。但是有笑脸是“:)”。告诉我,是否有可能以某种方式将它们更正为图片而无需通过替换笑脸来进行其他“操作”?
  • 您可以将两条消息都写入文件。您也可以只将原始消息写入文件,并且每次加载文件时都替换笑脸。第二种方法是广泛使用的方法。
猜你喜欢
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多