PHP如何将HTML字符串保存到数据库

时间:2016-05-20 05:45:33

标签: php mysql database string html5

为了响应API调用,我收到了一个完整的HTML脚本。完整意味着它包括HTML CSS和Javascript。现在我把那个HTML作为PHP变量中的字符串。

$content = '<html>
<head>
  <script>--Some javascript and libraries included--</script>
  <title></title>
</head>
<body>
   <style>--Some Styling--</style>
</body>
</html>';

现在,在数据库中保存此变量的最佳方法是什么?如何?

  • 作为VARCHAR或TEXT类型的字符串?
  • 作为Base64编码VARCHAR或TEXT类型的字符串?
  • 作为BLOB类型的二进制文件?

或者您想提出的任何其他内容(可能是序列化或打包)?

6 个答案:

答案 0 :(得分:8)

我使用base64编码数据以BLOB数据类型存储在我的数据库中。样板代码如下。

$content = '<html>
<head>
  <script>--Some javascript and libraries included--</script>
  <title></title>
</head>
<body>
   <style>--Some Styling--</style>
</body>
</html>';

在base64中编码数据

$encodedContent = base64_encode($content); // This will Encodes

使用BLOB将数据保存在数据库中。现在,在检索数据后,只需将其解码如下。

$ContentDecoded = base64_decode($content);  // decode the base64

现在 $ contentDecoded 的值是纯HTML。

答案 1 :(得分:3)

如果你对它进行base64编码,你可以将存储大小增加30%,并且每次显示时都需要对其进行解码。查看table structure的Wordpress,这是使用php在html数据库上存储html的最广泛使用的软件。他们用什么? LONGTEXT。在你的情况下,TEXT可能更好,因为你可能对页面的大小有一个很好的了解。

答案 2 :(得分:2)

使用addslashes()函数将HTML存储到变量中。

$html = addslashes('<div id="intro">
<div id="about" align="left">
<h2 class="bigHeader" dir="rtl"HEADER</h2>
<img src="img/Med-logo.png" alt="" />
<div id="wellcomePage" class="text-left text" dir="rtl">
<p>...some words....</p>
<p>.some words....</p>
<p>&nbsp;</p>
</div>
</div>
</div>');

在此之后,形成一个SQL查询。

$sql = "UPDATE `Pages` SET `content`= '".$html."'";

,您必须在从DB

检索时添加stripslashes

答案 3 :(得分:1)

您可以使用base64_encode并将该字符串存储到带有text / blob类型字段

的db中

答案 4 :(得分:0)

我建议您使用function changeImg(which) { if(which === "left") { alert("left"); } else { alert("right"); } } var leftClick = document.getElementById("left"); leftClick.addEventListener("click", changeImg("left"), true); var rightClick = document.getElementById("right"); rightClick.addEventListener("click", changeImg("right"), false); 。 Blob通常用于存储图像,音频或其他多媒体对象。详细了解bolobs

在数据库中存储HTML的数据类型为TEXT

使用mysql_real_escape_string()将html文本存储在数据库中

TEXT

答案 5 :(得分:0)

看到这个:我什么也没做...

我像这样使用它..工作得很好,还可以保存在mysql中,也可以正确地检索到。

    $editorContent = $_POST['textarea'];
    
    $a = $editorContent;
    
    $insert = $db->query("INSERT INTO psd ( psdata) VALUES ( '$a')" );