如何从生成的HTML中删除空格?

时间:2012-11-03 20:23:44

标签: php html

的functions.php

<?php
    function global_header($page)
    {
        echo "
        <!doctype html>
        <html lang='en'>
        <head>
            <meta charset='utf-8' />
            <title>" . $page . "</title>
            <meta name='description' content='BTI320 Assignment 2' />
        </head>
            <body>
        ";
    }
?>
<?php
    function global_footer()
    {
        echo "
            </body>
        </html>
        ";
    }
?>

当我在chrome / FF中查看我的页面源时,我得到以下来源:

    <!doctype html>
    <html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title>Add</title>
        <meta name='description' content='BTI320 Assignment 2' />
    </head>
        <body>

        </body>
    </html>

它缩进了大约3个标签。是否有PHP条带功能或可以正确对齐的东西?我不喜欢我的整个页面HTML搞砸了。

我的预期输出是不缩进的。

2 个答案:

答案 0 :(得分:1)

考虑使用模板引擎。直接输出HTML字符串被认为是不好的做法。

如果您不想使用第三方模板引擎,您可以从这样的简化模板中获益:

page.tpl模板文件

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset='utf-8' />
    <title>{{title}}</title>
</head>

<body>

{{body}}

</body>
</html>

<强> PHP:

// Loading HTML code that does not contain any undesired whitespace.
$code = file_get_contents('page.tpl');

// Replacing template variables with their values.
$code = str_replace(
    array(
        '{{title}}',
        '{{body}}'
    ),
    array(
        'Example title',
        'Page body'
    ),
    $code
);

// Outputting resulting HTML code.
echo $code;

答案 1 :(得分:1)

你得到缩进输出的原因是你正在回应它们...... 只需从echo语句中删除indentaions即可删除它们

<?php
    function global_header($page)
    {
        echo "
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>" . $page . "</title>
<meta name='description' content='BTI320 Assignment 2' />
</head>
<body>";
    }
?>
<?php
    function global_footer()
    {
        echo "
</body>
</html>";
    }
?>

这使得你的php更难以按照你的要求跟随输出