Эхо HTML с PHP посередине

0

Я новичок в PHP и сталкиваюсь с небольшой проблемой с этим кодом. Я пытаюсь сделать макет для страницы, которая использует больше PHP для заполнения пробелов.

Когда я просматриваю источник <? include $navbar?> <? 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>
";
?>

Я уверен, что знание этого поможет облегчить будущие проблемы, с которыми я сталкиваюсь.

Кроме того, каковы различия в использовании <??> <??> vs <?php?>?

  • 1
    У вас включены короткие теги?
  • 1
    Когда вы находитесь внутри echo "Quotes" вы всегда можете отобразить php переменные с помощью echo "Quotes {$variable} or $variable"; или более замысловатое echo "Quote " . $variable . " End Quote";
Показать ещё 2 комментария
Теги:

2 ответа

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?> Вокруг всего.

  • 0
    Наверное, следующий вопрос: вы можете использовать <?php ?> В выражении echo? или как мне это сделать?
  • 0
    Я бы этого не знал, на самом деле. Я предположил бы, что это будет работать просто отлично, и напечатал бы это на странице. Вы должны попробовать это для себя, чтобы увидеть, хотя.
Показать ещё 3 комментария
0

Пытаться

short_open_tag=On;

в php.ini

И перезапустите сервер Apache.

  • 0
    просто включил его и ничего не изменилось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню