我有一个PHP函数,用来输出标准的HTML块。它目前看起来是这样的:
<?php function TestBlockHTML ($replStr) { ?>
<html>
<body><h1> <?php echo ($replStr) ?> </h1>
</html>
<?php } ?>
我想在函数中返回(而不是回显) HTML。有没有办法不在字符串中构建HTML (上面的)?
发布于 2009-02-09 15:02:14
您可以使用heredoc,它支持变量插值,使其看起来相当整洁:
function TestBlockHTML ($replStr) {
return <<<HTML
<html>
<body><h1>{$replStr}</h1>
</body>
</html>
HTML;
}
不过,请密切注意手册中的警告--结尾行不能包含任何空格,因此不能缩进。
发布于 2009-02-09 14:55:24
是的,有:您可以使用ob_start
捕获echo
编辑的文本
<?php function TestBlockHTML($replStr) {
ob_start(); ?>
<html>
<body><h1><?php echo($replStr) ?></h1>
</html>
<?php
return ob_get_clean();
} ?>
发布于 2011-11-13 08:23:14
这可能是一个粗略的解决方案,我希望有人指出这是否是一个坏主意,因为这不是函数的标准用法。我已经成功地将HTML从PHP函数中提取出来,而没有将返回值构建为具有以下内容的字符串:
function noStrings() {
echo ''?>
<div>[Whatever HTML you want]</div>
<?php;
}
只需“调用”函数:
noStrings();
它将输出:
<div>[Whatever HTML you want]</div>
使用这种方法,您还可以在函数中定义PHP变量,并在HTML中回显它们。
https://stackoverflow.com/questions/528445
复制相似问题