将HTML文件存储为PHP字符串


Storing HTML file as a PHP string

我有一个完整的HTML页面:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>Template</title>
    <meta name="description" content="">
    <meta name="HandheldFriendly" content="True">
  ...
</head>
<body>
...
</body>
</html>

我正试图把它保存在一个变量中,比如:

$template = htmlentities("<!DOCTYPE HTML><html lang="en-US">...", ENT_HTML5, "UTF-8" );

但是它仅在第一个CCD_ 1标签处阻塞。

这是因为第一个HTML标记有双引号,就像您用来分隔字符串文字一样。

$template = <<<EOD
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>Template</title>
    <meta name="description" content="">
    <meta name="HandheldFriendly" content="True">
  ...
</head>
<body>
...
</body>
</html>
EOD;

您没有对字符串进行属性转义。请尝试:更换

htmlentities("//whatever your html code is//");

带有

htmlentities('//whatever your html code is//');

用户添加斜杠函数。。它不会在两者之间截断字符串。此函数可用于准备存储在数据库和数据库查询中的字符串。

在存储到数据库或用于任何目的之前

$final_string = addslashes('<!DOCTYPE HTML>

…………..’);

在浏览器上呈现该输出之前

$normal_string = stripslashes($database_retrived_string);
$data = '<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>Template</title>
    <meta name="description" content="">
    <meta name="HandheldFriendly" content="True">
  ...
</head>
<body>
...
</body>
</html>';

base64_encode($data);

试试这个:

$temp     = addslashes('<!DOCTYPE HTML><html lang="en-US">...', ENT_HTML5, "UTF-8" );
$template = htmlentities($temp);