我有一个完整的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);