我有一个完整的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" );
..但它只是在第一个HTML
标签处窒息。
答案 0 :(得分:4)
这是因为第一个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;
答案 1 :(得分:0)
你没有逃脱字符串属性尝试: 替换
htmlentities("//whatever your html code is//");
与
htmlentities('//whatever your html code is//');
答案 2 :(得分:0)
用户 addslashes function..it不会截断你的字符串。 此函数可用于准备字符串以存储在数据库和数据库查询中。
在存储到数据库或用于任何目的之前
$final_string = addslashes('<!DOCTYPE HTML>
..........');
在浏览器上呈现该输出之前
$normal_string = stripslashes($database_retrived_string);
答案 3 :(得分:0)
试试这个:
$temp = addslashes('<!DOCTYPE HTML><html lang="en-US">...', ENT_HTML5, "UTF-8" );
$template = htmlentities($temp);
答案 4 :(得分:0)
$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($数据);