使用一些没有make字符串的php返回大的HTML块

时间:2014-03-30 06:07:29

标签: php html return

如何使用<<<HTML HTML;返回带有一些php的大html块。

    return <<<HTML
<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn(); ?>
<?php if($isflag){?>
<span>DO not do this</span>
<?php } ?>
<?php echo $whatever; ?>
HTML;

我无法理解什么会起作用,什么不起作用!我应该如何使用这种返回<<<HTML HTML;块与一些我需要回应的php变量和一些回显一些东西的函数(不返回)

4 个答案:

答案 0 :(得分:2)

您可以使用“捕获输出”执行此任务。见 Output Control Functions

我有一些我刚刚测试过的示例代码。它捕获$ out1中 div 标记的输出并稍后再次显示。

这种技术用于许多“模板化”库和“框架”中的“视图”。

<!DOCTYPE html>
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Test of Output control functions</title>
</head>

<body>
 <?php ob_start(); // capture the buffer ?>
    <div style="border: 4px solid red">
       <p>This is a test paragraph</p>
       <p>This is test PHP code: <?php echo time(); ?></p>
    </div>
<?php $out1 = ob_get_contents(); // end capture ?>

</body>
</html>


<?php  echo $out1;  // output now or save for later. ?>
<?php  var_dump($out1, strlen($out1));  ?>
<?php exit; ?>

答案 1 :(得分:1)

好的,谷歌的heredoc语法为PHP。

但这就是它的工作原理(我认为你试图这样做。

$html = <<<HTML

<div>
     <h1>$phpVariableTitle</h1>
     <div>
       {$thisFunctionEchosomthingNotReturn()}
     </div>
</div>

HTML;
return $html;

试试吧。重要! heredoc语法要求您的结束标记保持对齐而没有标签。因此,请确保heredoc标记左侧没有空格或制表符,在此示例中,我的heredoc标记称为HTML。另外,用花括号包装你的php变量/函数是可选的,但这个方法很好。在侧面heredoc块中没有PHP标签。

希望有所帮助。

要使条件语句在内部工作,您需要使用函数:

class My_Class {
  public function myCondition($param) {
      if($param === true) {
         return '<p>True</p>';
      } else {
         return '<p>False</p>';
      }
   }
}
$object =new My_Class();
$html = <<<HTML
   <div>
       <h1>Conditional Statement</h1>
       <div> {$object->myCondition(true)} </div>
   </div>
HTML;

这样的事情应该有效。但我还没有测试过它。

答案 2 :(得分:0)

您无法在HEREDOC语法内编写控制结构/函数逻辑。

替代方式..

<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn(); ?>
<?php if($isflag){?>
<span>DO not do this</span>
<?php echo $whatever; }?>

答案 3 :(得分:0)

我无法理解你的问题可能会有所帮助:

<HTML>
<div>Here some text</div>
<?php thisFunctionEchosomthingNotReturn(); 
if($isflag){?>
<span>DO not do this</span>
<?php }//Closing If if it ends here.
echo $whatever; ?>
</HTML>