将 HTML 从 SQL 插入到文本区域


Insert HTML from SQL into textarea?

我想知道为什么我的代码中出现"解析错误:语法错误,意外T_VARIABLE,期望T_STRING",它将 HTML 从 MySQL 数据库中提取出来,用实体替换<和>(<、&gt ;)并将其输入到文本区域(CKEditor)中。这是代码的那部分:

<textarea name="editor1">
          <?php
            //QUERY DATABASE
            $query1 = "SELECT * FROM users WHERE ID = '" . $id . "'";
            $resource1 = mysql_query($query1, $database);
            $result1 = mysql_fetch_assoc($resource1);
            $rawcode = $result['code'];'
            $code1 = str_replace("<", "&lt;", "$rawcode");
            $code = str_replace(">", "&gt;", "$code1");
            echo $code1;          
          ?>
    <!--&lt;p&gt;Create your page here.&lt;/p&gt;-->
</textarea>

尾有一个额外的"''"

$rawcode = $result['code'];'

删除它

不要试图自己转义 HTML,而是使用 htmlspecialchars()。

$rawcode = $result['code'];'

反斜杠在 PHP 中是转义字符,在下一行是转义 $。PHP 将$code1解析为此处不允许的字符串。

您还不应该在 " 中使用 $rawcode 和 $code 1,因为它只会稍微减慢执行速度。

代码中存在语法错误:取代

 $rawcode = $result['code'];'

 $rawcode = $result['code'];

你可以使用 htmlspecialchars() 来替换你的 html。

取代:

$code1 = str_replace("<", "&lt;", "$rawcode");
$code = str_replace(">", "&gt;", "$code1");

跟:

$code = htmlspecialchars($rawcode);

您有两个错误。

第一个是来自$rawcode = $result['code'];'的$result变量。 $result不存在。您将该变量称为 $result1

第二个,是$rawcode = $result['code'];'年底的'。您必须将其删除。

结束代码$rawcode = $result1['code'];

我注意到的另一个错误,最后一个语句,echo $code1;应该echo $code;,因为它$code包含您对str_replace所做的最后更改。