提问人:adrianTNT 提问时间:9/5/2011 最后编辑:Vishwanath DalviadrianTNT 更新时间:6/30/2023 访问量:106353
在 PHP 变量中定义 html 代码
Defining html code inside PHP variables
问:
我想在 php 变量中包含 html 代码。 我记得有一种方法可以在 php 变量中定义 html 代码,类似于这样:
<?php $my_var = { ?>
<div>SOME HTML</div>
<?php } ?>
我找到了它,但我现在找不到它。
还有其他东西代替了,但我记不清了。
我想直接像上面一样编写html代码,所以不是这样的:有什么想法吗?PHP.net
"{"
$my_var = '<div>SOME HTML</div>';
答:
54赞
Emil Vikström
9/5/2011
#1
<?php
$my_var = <<<EOD
<div>SOME HTML</div>
EOD;
?>
它被称为heredoc语法。
评论
0赞
adrianTNT
9/5/2011
我希望 Dreamweaver 能帮助正确格式化 html 语法,但我看到它无法将其识别为 html :|我不能在html之前关闭php标签,然后在html之后再次打开它,我可以吗?
0赞
Emil Vikström
9/5/2011
不,不幸的是,你不能:-/您可以使用 ob_start() 和 ob_get_clean() 开始保存输出缓冲区,然后将缓冲区提取到变量中。不过,这被认为是一个(丑陋的)黑客。
1赞
Rok Kralj
9/5/2011
它不被认为是丑陋的黑客。如果它能减轻你的工作并让你感觉更好,那就使用它。没有人会注意到这种微小的速度差异。
2赞
Emil Vikström
9/5/2011
Rok,我不是在谈论性能。我说的是软件架构。使用输出缓冲区将数据提取到变量中不是一种干净且可维护的方法。
3赞
adrianTNT
9/9/2011
无论如何,ob_start() 似乎都是一个非常极端的解决方案,我可以想象页面加载、脚本等的各种错误。
109赞
Irfanullah Jan
4/6/2014
#2
试试这个:
<?php ob_start(); ?>
<div>HTML goes here...</div>
<div>More HTML...</div>
<?php $my_var = ob_get_clean(); ?>
这样,您将保留 HTML 的语法高亮显示。
评论
4赞
Steven Carlton
2/11/2019
如果您在 html 中有额外的 php 代码,这种方法似乎效果最好。
0赞
Kröw
5/15/2023
对此处的功能进行一些参考或详细说明将是有益的。
11赞
bart
12/12/2015
#3
将 HTML 保存在单独的文件中:然后将文件的内容读入变量中example.html.
$my_var = file_get_contents('example.html');
评论
0赞
adrianTNT
12/13/2015
是的,这种方法也适用于我的最初目的。
3赞
Mick Houtveen
1/27/2016
#4
如果你不关心 HTML 语法突出显示,你可以只定义一个普通变量。您也不必转义 HTML,因为 PHP 允许您使用单引号来定义变量,这意味着您可以在 HTML 代码中使用双引号。
$html = '
<p>
<b><i>Some html within a php variable</i><b>
</p>
<img src="path/to/some/boat.png" alt="This is an image of a boat">
' ;
对我来说非常有效,但我想这是一个偏好和实施的问题。
4赞
RedSparr0w
11/5/2016
#5
如果您要回显内容,那么另一种方法可以做到这一点,那就是使用函数,
这还具有使用语法突出显示的程序的额外好处。
function htmlContent(){
?>
<h1>Html Content</h1>
<?php
}
htmlContent();
?>
评论
0赞
gui3
7/28/2023
IMO 最优雅的方法,允许传递参数并在元素中包含 php,就像这样,感谢您的提示 =)<?php MyElement("some text"); ?>
1赞
S R Panda
11/1/2018
#6
要在 PHP 变量中定义 HTML 代码:
1) 使用函数 (Ref: @RedSparr0w)
<?php
function htmlContent(){
?>
<h1>Html Content</h1>
<?php
}
?>
2. 存储在变量中
$var = htmlContent();
评论
3赞
George Dimitriadis
4/8/2021
不知道为什么这被点赞,这不是您将回声存储到变量中的方式。 将只回显 HTML 并分配给$var = htmlContent();
NULL
$var
-1赞
upsDuck
9/15/2020
#7
为了补充提到在变量中使用函数的少数答案,我可以建议使用匿名函数。我不是 php 向导,所以如果我错了,请纠正我,但我会想象它的工作原理如下:
<?php
$my_var = function(){
?>
<div>SOME HTML</div>
<?php
};
// Display content
$my_var();
为了进一步扩展这一点,如果 html 中需要其他 php 内容,可以通过几种不同的方式传递它。
$method1 = "Title"; // Will be the same for every instance
$method2 = "default content"; // Can change for each instance
$my_var = function($unique=$method2/*set default*/) use ($method1){
?>
<h1><?php echo $prop1; ?></h1>
<div><?php echo $unique; ?></div>
<?php
};
// Display content
$my_var();
//returns
标题
默认内容$my_var("Some unique content");
//returns
标题
一些独特的内容
-1赞
Saurabh
3/19/2021
#8
如何在 html 的 tr、td 部分使用这个数组并将此 html 内容分配给 php 变量$data。
$student = [
'saurabh' => 26,
'John' => 20,
'Ross' => 30
];
<!DOCTYPE html>
<html>
<head>
<style>
table{
border: 1px solid black;
}
.lft {
padding: 0px 80px 10px 5px;
}
td {
border-bottom: 2px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr>
<td>Saurabh</td>
<td>26</td>
</tr>
</table>
</body>
</html>
评论