2013-01-24 47 views
0

基本上我正在使用PHP为我的网站创建一个基本的CMS。我试图编写一个脚本,它可以从CSV文件创建SPRY导航栏,但服务器在到达调用脚本的include()函数时停止渲染。我检查了Apache的错误日志,并且里面没有任何东西,在脚本的开头我回显了一个HTML注释,但是它没有出现在页面源代码中,所以它看起来甚至没有启动跑步?任何想法可能是什么?页面在PHP include()函数后停止呈现

模板头文件(包含在PHP中的主网页文件,正常工作):

<div id="header"> 
<div style="float:left; height:inherit;"><a href="/"> <img src="/uploads/logo.png height="150px" alt="Bradfield &amp; 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); 
} 

?> 
+0

我发现这个问题,而不是'$ data [$ 2]'它应该是'$ data [2]',并且修复了所有与我的HTML标签有关的问题! –

+1

这将表明你没有错误检查\显示,这使得很难开发任何东西 – 2013-01-24 19:19:08

回答

0

因为这个文件有语法错误

echo "<li><a href=\"".$data[$2]."\">".$data[$1]."<a/><li><BR/>"; 

你不能有数字的变量名。如果你想访问$data数组的索引,它应该是$data[2]

+0

为什么会被拒绝投票?你能阐明为什么这是错的吗? –

+0

大约2分钟前,ts找到了答案。但是,这对其他人来说更清楚 –

+0

不是。那是为什么我upvoted你;) –

0

当页面停止渲染时,这意味着一个致命的php错误。但是,包含并不会产生致命错误,只是一个警告。您可能在该PHP文件中有一些错误。

+0

该代码确实存在致命错误。 –

+0

对。我看到你写了什么。 – Kitet

0

尝试与

error_reporting(E_ALL); 
ini_set('display_errors',1); 

的替代品“在脚本中有错误”可能是,你有一个无限循环,到达memory_lmit和线程被杀害。