无论如何都要在PHP中将html响应转换为字符串。让我通过一个例子来表达。
<?php
function printTitle($title="Welcome"){
?>
<div class='mainTitle'>
<div class='titleLogo'>
</div>
<div class='titleString'>
<?php echo $title; ?>
</div>
</div>
<?php
}
?>
这里调用此函数将输出显示标题的html。 现在我需要的是将此响应转换为字符串值,以便它可以作为json响应传递,如:
$response=array("title"=>printTitle(),"sidebar"=>getSideBar());
echo json_encode($response);
我想这样做,以便我可以通过ajax获取标题和侧边栏。
一种方法是:
<?php
function printTitle($title="Welcome"){
$ret="<div class='mainTitle'>
<div class='titleLogo'>
</div>
<div class='titleString'>
". $title ."
</div>
</div>";
return $ret;
}
?>
但是这让html变得一团糟。
答案 0 :(得分:2)
您可以使用HEREDOC:
function printTitle($title="Welcome"){
return <<<HTML
<div class='mainTitle'>
<div class='titleLogo'>
</div>
<div class='titleString'>
$title
</div>
</div>
HTML;
}
答案 1 :(得分:0)
使用输出缓冲区:
function printTitle($title="Welcome"){
ob_start();
...
return ob_get_clean();
}
从ob_get_flush()更改为ob_get_clean();