在中间用PHP回应HTML

时间:2014-04-25 15:19:29

标签: php html

我是PHP的新手,并且遇到了这个代码的一个小问题。我正在尝试为使用更多PHP填充空白的页面制作布局。

当我查看来源<? include $navbar ?>被注释掉但<?=$pagetitle?>有效时,为什么会这样?

供参考: $navbar = "navbar.php";navbar.php

<?php echo "Select Car Change Profile"; ?>

layout.php中:

<?php
echo "
<html>
<head>
    <title>Race Data. <?=$pagetitle?></title>
</head>

<body>
    <div id='page'>
        <table border='1'>
            <tbody>
                <tr>
                    <td colspan='3'>Banner goes here.<?=$pagetitle?></td>
                </tr>
                <tr>
                    <td rowspan='2'>Left menu</td>
                    <td colspan='2'><? include $navbar; ?></td>
                </tr>
                <tr>
                    <td>Content</td>
                    <td>Right menu</td>
                </tr>
                <tr>
                    <td colspan='3'>Footer</td>
                </tr>
            </tbody>
        </table>
    </div>
</html>
";
?>

我确信知道这将有助于我遇到的未来问题。

此外,使用<? ?><?php ?>有何不同?

2 个答案:

答案 0 :(得分:4)

在php中,您始终需要使用<?php /*code*/ ?>

回复某些内容的简写版本为<?= /*string*/ ?>,但要运行代码,例如include,您需要以<?php开头。在您的示例中,这将是:

<tr>
    <td rowspan='2'>Left menu</td>
    <td colspan='2'><?php include $navbar; ?></td>
</tr>

校正

我只是注意到你将PHP标记放在另一组PHP标记中。你很难做到这一点。在PHP文件中,除<?php ?>标记内的内容外,任何内容都被视为回显。所以这应该对你有用:

<html>
<head>
    <title>Race Data. <?=$pagetitle?></title>
</head>

<body>
    <div id='page'>
        <table border='1'>
            <tbody>
                <tr>
                    <td colspan='3'>Banner goes here.<?=$pagetitle?></td>
                </tr>
                <tr>
                    <td rowspan='2'>Left menu</td>
                    <td colspan='2'><?php include $navbar; ?></td>
                </tr>
                <tr>
                    <td>Content</td>
                    <td>Right menu</td>
                </tr>
                <tr>
                    <td colspan='3'>Footer</td>
                </tr>
            </tbody>
        </table>
    </div>
</html>

不同之处在于我没有在整个事情中放置<?php ?>个标签。

答案 1 :(得分:0)

尝试

short_open_tag=On;

在php.ini中

重新启动Apache服务器。