首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法在PHP函数中返回HTML?(不将返回值构建为字符串)

有没有办法在PHP函数中返回HTML?(不将返回值构建为字符串)
EN

Stack Overflow用户
提问于 2009-02-09 14:52:42
回答 7查看 136.5K关注 0票数 77

我有一个PHP函数,用来输出标准的HTML块。它目前看起来是这样的:

<?php function TestBlockHTML ($replStr) { ?>
    <html>
    <body><h1> <?php echo ($replStr) ?> </h1>
    </html>
<?php } ?>

我想在函数中返回(而不是回显) HTML。有没有办法不在字符串中构建HTML (上面的)?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-02-09 15:02:14

您可以使用heredoc,它支持变量插值,使其看起来相当整洁:

function TestBlockHTML ($replStr) {
return <<<HTML
    <html>
    <body><h1>{$replStr}</h1>
    </body>
    </html>
HTML;
}

不过,请密切注意手册中的警告--结尾行不能包含任何空格,因此不能缩进。

票数 108
EN

Stack Overflow用户

发布于 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();
} ?>
票数 85
EN

Stack Overflow用户

发布于 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中回显它们。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/528445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档