php解析错误总是在最后一行

时间:2010-02-05 14:21:01

标签: php wampserver parse-error

我正在尝试读取存储在mysql表中的注释。由于某种原因,即使最后一行为空,我总是在文件的最后一行得到一个解析错误。我不确定它是否相关,但connect.php适用于将注释放入数据库。我正在使用wampserver来托管它并手工编码。

我认为这与while循环有关,当我注释掉while(){和}接近结尾时,我只是得到一些缺失的变量错误,正如你所期望的那样。我对php编码很新,所以我很确定问题会变得简单,我要么错过了,要么不能正确理解。

无论如何,这是我的代码:

<?php
include "connect.php";
?>

<?php
$sql = "SELECT * FROM main";
$result = mysql_query($sql) or die("Could not get posts from table");
while($rows=mysql_fetch_array($result)){
?>
     <table bgcolor="green" align="center">
     <tr>
     <td></td>
     </tr>
     <tr>
     <td><strong> <? echo $rows['name']; ?> </strong></td>
     </tr>
     <tr>
     <td> <? echo $rows['email']; ?> </td>
     </tr>
     <tr>
     <td> <? echo $rows['comment']; ?> </td>
     </tr>
     </table>
<?
}
?>

感谢您的帮助。 :)

6 个答案:

答案 0 :(得分:10)

看起来您已禁用PHP短标记。所以

替换

<?

<?php

使您的程序可移动,避免使用短标记。如果您仍然需要使用短标签,则可以启用。请参阅this帖子以了解如何操作。

答案 1 :(得分:6)

您是否启用了短标签?代码的底部如下所示:

<? 
} 
?> 

如果未启用短标记,则必须使用<?php

打开php标记
<?php
} 
?>

没有正确的开始标记会导致最后一行出错,因为它预计会有}。另见:http://www.bin-co.com/php/articles/using_php_short_tags.php

答案 2 :(得分:1)

短路并不总是可用。短标签可用short_tags函数()(仅限PHP 3),设置PHP short_open_tag配置文件的参数,或者使用--enable-short -tags选项编译PHP进行配置。虽然它在php.ini-dist中默认启用,但它不鼓励使用短标签格式。

虽然这可能还不够,但手册重申并扩展了其他不合适的情况:

“注意:在开发用于重新分发的应用程序或库时,或者为不受您控制的服务器开发应用程序或库时,请勿使用短标记,因为服务器可能不支持短标记。便携式,可再发行的代码,请务必不要使用短标签。“

事实上,在PHP 6或7中,这些标签将被删除。

BTW,在Zend Framework手册中明确指出“永远不允许短标签”:)

答案 3 :(得分:0)

如果您将文件包含在其他某个php文件中,请尝试删除文件末尾的结束PHP标记(当然,使用完整的标记名称):

   ....<td> <? echo $rows['comment']; ?> </td>
 </tr>
 </table>
<?php
}

答案 4 :(得分:0)

如果可能,启用短标签。那是你的问题。如果你为每个人添加PHP

答案 5 :(得分:0)

我被一些不是他们看起来的人物抛弃了几次。当我从浏览器复制粘贴代码时,我发现删除并重新输入'和'可以清除错误。