Страница останавливается рендерингом после функции PHP include()
По сути, я пытаюсь использовать PHP для создания базовой CMS для моего сайта. Я пытаюсь написать скрипт, который создает панель навигации SPRY из файла CSV, но сервер останавливает рендеринг, когда достигает функции include(), которая вызывает скрипт. Я проверил журналы ошибок Apache, и там ничего нет, также в начале скрипта я добавил HTML-комментарий, но он не появляется в исходном коде страницы, так что может показаться, что он даже не запускается бежать? Любые идеи относительно того, что это может быть?
Заголовочный файл шаблона (входит в состав PHP в файле главной страницы, работает нормально):
<div id="header">
<div style="float:left; height:inherit;"><a href="/"> <img src="/uploads/logo.png height="150px" alt="Bradfield & Bentley" /> </a> </div>
<div style="float: right;"></div>
<div id="navigation" style="clear:both;">
<p></p>
<ul id="MenuBar1" class="MenuBarHorizontal">
<?php include($_SERVER['DOCUMENT_ROOT'].'/templatefiles/navigation.php'); ?>
</ul>
</div>
</div>
<div id="contain">
<div id="spacer">
<p></p>
</div>
Файл 'navigation.php' (тот, который сервер останавливает рендерингом при включении):
<?php
echo "<!-- File Opened -->";
$row = 1;
if (($handle = fopen($_SERVER['DOCUMENT_ROOT'].'/templatefiles/navigation.csv', "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
echo "<li><a href=\"".$data[$2]."\">".$data[$1]."<a/><li><BR/>";
}
fclose($handle);
}
?>
3 ответа
Попробуйте это с
error_reporting(E_ALL);
ini_set('display_errors',1);
альтернатива "иметь ошибку в вашем скрипте" может заключаться в том, что у вас есть бесконечный цикл и вы достигаете memory_lmit и поток уничтожается.
Когда страница перестает отображаться, это означает фатальную ошибку php. Включение, однако, не вызывает фатальную ошибку, только предупреждение. Возможно, у вас есть ошибка в этом файле php.
Поскольку этот файл имеет синтаксическую ошибку
echo "<li><a href=\"".$data[$2]."\">".$data[$1]."<a/><li><BR/>";
Вы не можете иметь числовые имена переменных. Так должно быть $data[2]
если вы хотите получить доступ к этому индексу $data
массив.