在php函数中打印html内容

在php函数中打印html内容,php,html,Php,Html,我正在尝试创建一个函数“header”,它将打印html内容(doctype、html、head、body等)-但是当我查看站点源代码时,所有这些内容都在一行中,而不是在树中 public function header() { print( '<!DOCTYPE HTML>' . '<html>' . '<head>'

我正在尝试创建一个函数“header”,它将打印html内容(doctype、html、head、body等)-但是当我查看站点源代码时,所有这些内容都在一行中,而不是在树中

public function header() {
        print(
                '<!DOCTYPE HTML>'
                . '<html>'
                . '<head>'
                . '<meta charset="utf-8"/>'
                );
public函数头(){
印刷品(
''
. ''
. ''
. ''
);
当我查看web源时,输出如下所示:

<!DOCTYPE HTML><html><head><meta charset="utf-8"/>

我希望它看起来更像标准html树:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8"/>

我怎么做?有什么选择

编辑:


你们中的一些人向我展示了一个echo选项—它可以工作,但在php文件中看起来非常糟糕—如:

            public function header() {
echo "<!DOCTYPE HTML>
<html>
    <head>
        <meta charset='utf-8' />
    </head>
    <body>
    </body>
</html>            
";
public函数头(){
回声“
";

您可以在打印时引入选项卡:

print("<!DOCTYPE HTML>"
      . "<html>"
      . "\t<head>"
      . "\t\t<meta charset=\"utf-8\"/>"
     );
print(“)
. ""
.“\t”
.“\t\t”
);

使用echo的最经典方式:

echo '<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8"/>

';
echo'
';

另一种方法是,只需分离html模板文件(按需要格式化),然后在函数中使用传递的数据对其进行要求,如下所示

my_view.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1><?= $heading ?></h1>
</body>
</html>
这样,您就可以调用以输出包含数据的视图,如下所示

showTemplate('my_view', [ 'heading' => 'Awesome Page' ]);

这样,您的模板和数据将更有条理和美观。

另一种方法是:

<?php
function myheader() {
?><!DOCTYPE HTML>
<html>
   <head>
      <meta charset="utf-8"/>

<?php } ?>

我重新定义了函数名以避免冲突(主题外)。
我不知道这样的代码应该如何缩进…

请参阅下面在PHP代码块中打印HTML的方法

用于短HTML内容

echo ' <div class="myClass"> Some Text here. Some text here </p> ';
echo“这里有一些文本。这里有一些文本”

用于带有PHP变量连接的简短HTML内容

$myName='Optimum';
echo ' <div class="myClass"> My Name is '. $myName .' </p> ';
$myName='Optimum';
回显“我的名字是“$myName”。

”;
对于长内容

$html.='';
$phpVariable ='Dummy content'
$html.='<div class="wrapper">'
$html.='<div class="content">';
$html.='<p> My content here'. $phpVariable .' </p>';
$html.='</div>';
$html.='</div>';

echo $html;
$html.='';
$phpVariable='Dummy content'
$html。=''
$html.='';
$html.='此处为我的内容。$phpVariable.

; $html.=''; $html.=''; echo$html;
根据您的场景

  <?php 
 public function header() { // SOME NECESSARY PHP CODE ?>
 <!DOCTYPE HTML>
     <html>
         <head>
             <meta charset="<?php //echo get_chartset ?>"/>
                 <link rel="stylesheet" type="text/css" href="<?php //echo_css_path ?>">

  } 
  ?>


您是否尝试过使用回音功能?不要过于关注代码外观。要实现您的项目,还有许多更重要的问题需要考虑(安全、优化、进化)。@user6685192 arg,忘记更改引号类型-请参阅编辑的答案。我已将其更改为双引号,但结果仍然很弱(有标签,但仍在一行中)对于s&g,我刚刚尝试了这个…在google chrome和ms edge中,查看源代码所有内容都在一行中。但在php文件中,它看起来很弱,有点粗糙,但效率很高。我将尝试另一个答案以满足您的审美要求:)那太好了-请检查main post中的edit这确实有效,但可能会删除打开
之间的换行符,因为它会导致视图源代码顶部出现换行符。但在php文件中看起来非常糟糕
  <?php 
 public function header() { // SOME NECESSARY PHP CODE ?>
 <!DOCTYPE HTML>
     <html>
         <head>
             <meta charset="<?php //echo get_chartset ?>"/>
                 <link rel="stylesheet" type="text/css" href="<?php //echo_css_path ?>">

  } 
  ?>