2012-08-09 2 views
23

У меня есть навигационная панель, изображение и заголовок, который я буду включать в каждую страницу моего сайта, поэтому я хотел использовать php include для ссылки на этот код на нескольких страницах. Тем не менее, я думаю, что у меня может быть синтаксис неправильный или что-то, потому что он ничего не делает, когда я его загружаю. Вот некоторые фрагменты кода:PHP Include for HTML?

<!-- sample page --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html> 
<head> 
<?php include ('headings.php'); ?> 
</head> 
<body> 
<?php include ('navbar.php'); ?> 
<?php include ('image.php'); ?> 
</body> 
</html> 

navbar.php

<?php 

    echo '<ul id="nav"> 
     <li> 
      <a href="Home.html">Home</a> 
     </li> 
     <li> 
      <a>About Me</a> 
      <ul> 
       <li> 
        <a href="Career.html">Career</a> 
       </li> 
       <li> 
        <a href="Coding.html">Coding</a> 
       </li> 
       <li> 
        <a href="Personal.html">Personal</a> 
       </li> 
      </ul> 
     </li> 
     <li> 
      <a href="Travels.html">Travel</a> 
     </li> 
     <li> 
      <a href="Contact.html">Contact</a> 
     </li> 
    </ul>'; 

    ?> 

Спасибо за помощь!

+6

Нет причин иметь это в теге PHP и использовать 'echo'. Вы можете включить его, даже если это простой HTML-код. ** Изменить **: Тем не менее, ваш код выглядит отлично. Вы пытались просмотреть источник, и могли ли вы опубликовать его в OP? ** Редактировать **: Возможно, это потому, что PHP не установлен на вашем сервере, и поэтому ваш браузер просто отображает теги PHP как обычные теги HTML (ничего). – h2ooooooo

+0

+1 как вы сделали для тегов с телом головы и тела – Waygood

+0

Вместо этого вы можете рассмотреть механизм шаблонов. Посмотрите Smarty, Twig или Dwoo в качестве примеров. Там больше тонны. – Crontab

ответ

23

Вы можете использовать код php в файлах с расширением .php и только там (если другие не определены в настройках вашего сервера).

Просто переименуйте файл *.html в *.php


Если вы хотите разрешить обработку php кода в файлах различного формата, у вас есть два варианта, чтобы сделать это:

1) Изменение httpd.conf, чтобы позволить это для всех проектов на вашем сервере, добавив:

AddHandler application/x-httpd-php .htm .html 

2) Создание .htaccess файл в отдельном проекте верхней директории с:

<Files /> 
    AddType application/x-httpd-php .html 
</Files> 

Для второго варианта вам необходимо разрешить использование .htaccess файлов в httpd.conf, добавив следующие параметры:

AllowOverride All 
AccessFileName .htaccess 

*, что является правильным для HTTP-сервер Apache

+8

False. До тех пор, пока сервер настроен для обработки разных расширений в виде файлов PHP, вы можете включить PHP-код в файл с ** ANY ** расширением (т.е. '.js',' .css', '.html' и т. Д.). – Matt

+0

Вы можете использовать PHP в файлах с другими расширениями. – jprofitt

+0

На самом деле вы можете использовать PHP везде, где хотите. – Vatev

9

Вам не нужно отражать информацию в файле php. В php include будет автоматически включаться любой HTML-файл в этот файл.

Убедитесь, что вы используете индексный файл с расширением .php, .html не будет работать с php. (Если вы не говорите, что ваш сервер обрабатывает файлы .html в противном случае)

Убедитесь, что ваши пути правильно настроены. Из вашего описания, как вы его настроили, файлы header.php/navbar.php/image.php должны находиться в корневом каталоге. Так ваш корневой каталог должен выглядеть следующим образом:

index.php
navbar.php
image.php
header.php

В противном случае, если эти PHP-файлы находятся в папке /includes/, она должна выглядеть так:

<?php include ('includes/headings.php'); ?>

0

Первое: что другие сказали. Забудьте инструкцию echo и просто напишите свой navbar.php как обычный файл HTML.

Во-вторых: ваши включенные пути, вероятно, перепутаны.Для того, чтобы убедиться, что вы включаемые файлы, которые находятся в том же каталоге, что и текущий файл, используйте __DIR__:

include __DIR__.'/navbar.php'; // PHP 5.3 and later 
include dirname(__FILE__).'/navbar.php'; // PHP 5.2 
4

Попытка получить некоторую информацию отладки, может быть, что путь к файлу неправильно, например.

Попробуйте эти две вещи: - Добавить эту строку в верхней части страницы образца:

<?php error_reporting(E_ALL);?> 

Это будет печатать все ошибки/предупреждения/уведомления на странице, так что если есть какие-либо проблемы, вы получите описывая это текстовое сообщение вместо пустой страницы

Кроме того, вы можете изменить, включает() требовать()

<?php require ('headings.php'); ?> 
<?php require ('navbar.php'); ?> 
<?php require ('image.php'); ?> 

Это будет бросать НЕУСТРАНИМЫЙ ERR или PHP не может загружать требуемые страницы и должен помочь вам лучше отслеживать то, что не так.

Здесь вы можете оставить здесь описания ошибок, если у вас есть, и вы не можете понять, что это значит ..

+0

Спасибо, но мы поняли это. Я уверен, что это будет полезно в будущем! – sresht

1

Вот шаг за шагом процесс, чтобы включить PHP код в HTML файл (испытано)

Если PHP работает есть только один шаг влево, чтобы использовать PHP скрипты в файлах с расширением * .html или * .htm. Волшебное слово «.htaccess». Пожалуйста, ознакомьтесь с определением .htaccess в Википедии, чтобы узнать больше об этом. Согласно Википедии, это «файл конфигурации на уровне каталогов, который позволяет децентрализовать управление конфигурацией веб-сервера».

Возможно, вы используете такой конфигурационный файл .htaccess для своей цели. В нашем случае вы хотите, чтобы веб-сервер обрабатывал файлы HTML, такие как файлы PHP.

Сначала создайте пустой текстовый файл и назовите его «.htaccess». Вы можете спросить себя, почему имя файла начинается с точки. В Unix-подобных системах это означает, что dot-файл является скрытым файлом. (Примечание. Если ваша операционная система не разрешает имена файлов, начинающиеся с точки, просто временно назовите файл «xyz.htaccess» временно. Как только вы загрузите его на свой веб-сервер на более позднем этапе, вы можете переименовать файл в онлайн, .htaccess ") Затем откройте файл с помощью простого текстового редактора, такого как« Редактор »в MS Windows. Вставьте следующую строку в файл: AddType application/x-httpd-php .html .htm Если это не сработает, удалите строку из вашего файла и вставьте в нее эту альтернативную строку, для PHP5: Приложение AddType/x-httpd-php5 .html .htm Теперь загрузите файл .htaccess в корневой каталог вашего веб-сервера. Убедитесь, что имя файла «.htaccess». Теперь ваш веб-сервер должен разбирать файлы * .htm и * .html, такие как файлы PHP.

Вы можете попробовать, если он работает, создав HTML-файл, как показано ниже. Назовите это «PHP-в-HTML-Test.htm», вставьте следующий код в нем и загрузить его в корневой каталог вашего веб-сервера:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
<HEAD> 
<TITLE>Use PHP in HTML files</TITLE> 
</HEAD> 

    <BODY> 
    <h1> 
    <?php echo "It works!"; ?> 
    </h1> 
    </BODY> 
</HTML> 

Попробуйте открыть файл в браузере, набрав: http://www.your-domain.com/php-in-html-test.htm (еще раз, пожалуйста, замените your-domain.com через свой собственный домен ...) Если в вашем браузере отображается фразу «It works!» все работает отлично, и вы можете использовать PHP в. * html и * .htm-файлах с этого момента. Однако, если нет, попробуйте использовать альтернативную строку в файле .htaccess, как мы показали выше.Если все еще не работает, обратитесь к вашему провайдеру хостинга.

1

Я понял, что простое решение для PHP включает в себя материал. Просто переименуйте все ваши .html-файлы в .php, и вы хорошо поедете.

0

У меня есть аналогичная проблема. Похоже, PHP не любит PHP-код внутри включенного файла. В вашем случае решение довольно простое. Удалите php-код из navbar.php, просто оставьте простой HTML в нем, и он будет работать.

+0

Это не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав [Ask Question] (https://stackoverflow.com/questions/ask). Вы также можете [добавить щедрость] (https://stackoverflow.com/help/privileges/set-bounties), чтобы привлечь больше внимания к этому вопросу, как только у вас будет достаточно [репутации] (https://stackoverflow.com/help/ Что-репутация). - [Из обзора] (/ review/low-quality-posts/17479786) –