web-dev-qa-db-ja.com

PHP HTML文字列をデータベースに保存する方法

API呼び出しへの応答として、完全なHTMLスクリプトを取得しています。 Fullは、HTMLCSSと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タイプの文字列として?
  • VARCHARまたはTEXTタイプでエンコードされたBase64の文字列として?
  • BLOBタイプのバイナリとして?

またはあなたが提案したい他のもの(シリアライズまたはパックかもしれません)?

5
saiid

私は、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になります。

11
saiid

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
Gorakh Yadav

Base64でエンコードすると、ストレージサイズが約30%増加し、表示するたびにデコードする必要があります。 phpを使用してmysqlデータベースにhtmlを格納する最も広く使用されているソフトウェアであるWordpressの テーブル構造 を見てください。彼らは何を使用していますか? LONGTEXT。あなたの場合、おそらくあなたはおそらくページのサイズについて良い考えを持っているので、TEXTはより良いでしょう。

3
e4c5

base64_encodeを使用して、その文字列をテキスト/ブロブタイプのフィールドでdbに保存できます

1
Jignesh Patel

これを参照してください:私は何もしませんでした...私はこのようにそれを使用します..うまく機能し、mysqlに保存し、適切に戻ります。

    $editorContent = $_POST['textarea'];

    $a = $editorContent;

    $insert = $db->query("INSERT INTO psd ( psdata) VALUES ( '$a')" );
0

TEXTを使用することをお勧めします。ブロブは通常、画像、オーディオ、またはその他のマルチメディアオブジェクトを格納するために使用されます。についてもっと読む bolobs

HTMLをデータベースに保存するデータ型はTEXTになります。

mysql_real_escape_string() を使用してhtmlテキストをデータベースに保存します

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

$html = mysql_real_escape_string($content);
0
Manjeet Barnala