PHP Include for HTML?
У меня есть навигационная панель, изображение и заголовок, который я буду включать в каждую страницу моего сайта, поэтому я хотел использовать php include для ссылки на этот код на нескольких страницах. Однако, я думаю, что у меня может быть синтаксис неправильный или что-то, потому что он ничего не делает, когда я его загружаю. Вот некоторые фрагменты кода:
<!-- 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>';
?>
Спасибо за помощь!
Ответы
Ответ 1
Вы можете использовать код php
в файлах с расширением .php
и только там (iff другой не определен в настройках вашего сервера).
Просто переименуйте свой файл *.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
Ответ 2
Вам не нужно повторять информацию в файле 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'); ?>
Ответ 3
Попытайтесь получить некоторую отладочную информацию, возможно, что путь к файлу неверен, например.
Попробуйте эти две вещи:
Добавьте эту строку в начало своей страницы:
<?php error_reporting(E_ALL);?>
Это приведет к печати всех ошибок/предупреждений/уведомлений на странице, поэтому при возникновении каких-либо проблем вы получите текстовое сообщение, описывающее его, вместо пустой страницы
Кроме того, вы можете изменить include() на require()
<?php require ('headings.php'); ?>
<?php require ('navbar.php'); ?>
<?php require ('image.php'); ?>
Это вызовет ошибку FATAL. PHP не может загружать требуемые страницы и должен помочь вам лучше отслеживать, что происходит не так.
Вы можете размещать здесь описания ошибок, если вы их получите, и вы не можете понять, что это значит.
Ответ 4
Вот шаг за шагом, чтобы включить php-код в html файл (Tested)
Если PHP работает, остается только один шаг, чтобы использовать PHP-скрипты в файлах с расширениями *.html или *.htm. Волшебное слово ".htaccess" . Пожалуйста, ознакомьтесь с определением .htaccess в Википедии, чтобы узнать больше об этом. Согласно Википедии, это "файл конфигурации на уровне каталогов, который позволяет децентрализовать управление конфигурацией веб-сервера".
Возможно, вы можете использовать такой файл конфигурации .htaccess для своей цели. В нашем случае вы хотите, чтобы веб-сервер обрабатывал файлы HTML, такие как файлы PHP.
Сначала создайте пустой текстовый файл и назовите его ".htaccess" . Вы можете спросить себя, почему имя файла начинается с точки. В Unix-подобных системах это означает, что dot файл является скрытым файлом.
(Примечание. Если ваша операционная система не позволяет именам файлов, начинающимся с точки, просто называть файл "xyz.htaccess" временно. Как только вы загрузите его на свой веб-сервер на более позднем этапе, вы можете переименовать файл в онлайн ". Htaccess" )
Затем откройте файл с помощью простого текстового редактора, такого как "Редактор" в MS Windows. Вставьте следующую строку в файл:
Приложение AddType/x-httpd-php.html.htm
Если это не сработает, удалите строку из вашего файла и вставьте в нее эту альтернативную строку, для PHP5:
Приложение AddType/x-httpd-php5.html.htm
Загрузите файл .htaccess в корневой каталог вашего веб-сервера. Убедитесь, что имя файла ".htaccess" . Теперь ваш веб-сервер должен разбирать файлы *.htm и *.html, такие как файлы PHP.
Вы можете попробовать, если он работает, создав HTML файл, как показано ниже. Назовите его "php-in-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 своим собственный домен...)
Если ваш браузер показывает фразу "Это работает!" все работает отлично, и вы можете использовать PHP в. * html и *.htm файлах с этого момента. Однако, если нет, попробуйте использовать альтернативную строку в файле .htaccess, как мы показали выше. Если все еще не работает, обратитесь к своему провайдеру хостинга.
Ответ 5
Я понял, что простое решение для PHP включает материал. Просто переименуйте все ваши .html файлы в .php, и вам будет хорошо.
Ответ 6
Во-первых: что говорили другие. Забудьте инструкцию echo и просто напишите свой navbar.php как обычный файл HTML.
Во-вторых: ваши включенные пути, вероятно, перепутаны. Чтобы включить файлы, находящиеся в том же каталоге, что и текущий файл, используйте __DIR__
:
include __DIR__.'/navbar.php'; // PHP 5.3 and later
include dirname(__FILE__).'/navbar.php'; // PHP 5.2
Ответ 7
У меня подобная проблема. Похоже, PHP не любит PHP-код внутри включенного файла. В вашем случае решение довольно простое. Удалите php-код из navbar.php, просто оставьте простой HTML в нем, и он будет работать.