Я создаю очень маленькую страницу, которая будет жить в течение 5-дневной конференции. Каждый день сайт должен загружать новый контент, поэтому я использую небольшой скрипт для загрузки во включаемый файл. Я пытаюсь сделать мои включения относительными путями, но что-то не работает правильно. Ниже приведен текущий код, с которым я работаю, который использует массив (24 для сегодняшней даты, поэтому я могу проверить, работает ли ti) для дат, которые отображаются в файл, и часть содержимого по умолчанию, если условие не возвращается с результатом.
<?php
$path = $_SERVER['HTTP_HOST'];
$date = date("j");
$event_dates = array(24,15,16,17,18,19);
if (in_array($date, $event_dates)) {
$path .= "/_includes/date-".$date.".php";
include($path);
}
else {
$path .= "/_includes/default.php";
include($path);
}
?>
Если я включу «_include / default.php», все работает нормально, и на данный момент, возможно, это должно быть решением, но я бы хотел все же выяснить проблему относительного пути на случай, если я столкнусь с этой же проблемой на Поздняя дата. Кроме того, если я изменю включение на эхо, то получу ожидаемый результат.
Так как вы используете .=
, "/_includes/..."
строка соединяется с $path
, Тогда оно будет иметь вид localhost/_includes/...
, Это не содержит схему (HTTP (S)), так что это будет работать, только если у вас есть папка localhost
в этом каталоге.
Если вы хотите текущий каталог, вы можете использовать dirname(__FILE__)
вместо. Вы также можете использовать ./_includes/...
как путь, если _includes
подкаталог текущего каталога и т. д.
Других решений пока нет …