parsing错误:语法错误,我的PHP代码中的文件意外结束
我得到一个错误:
Parse error: syntax error, unexpected end of file in the line
有了这个代码:
<html> <?php function login() { // Login function code } if (login()) {?> <h2>Welcome Administrator</h2> <a href=\"upload.php\">Upload Files</a> <br /> <a href=\"points.php\">Edit Points Tally</a> <?php} else { echo "Incorrect login details. Please login"; } ?> Some more HTML code </html>
有什么问题?
你应该避免这个(在代码的最后):
{?>
和这个:
<?php}
你不应该把括号直接放在开放/closures的php
标签上,而是用一个空格分开:
{ ?> <?php {
也避免<?
并使用<?php
我有同样的错误,但我修改了php.ini
文件。
find你的php.ini文件,看看老兄,我的php.ini在哪里?
然后用你最喜欢的编辑器打开它。
查找一个short_open_tag
属性,并应用以下更改:
; short_open_tag = Off ; previous value short_open_tag = On ; new value
我有同样的错误,但我已经通过修改php.ini和/或编辑PHP文件修复!
有两种不同的方法来解决parsing错误语法。
方法1(您的PHP文件)
避免在你的PHP文件中:
<? } ?>
确保你把它这样
<?php ?>
你的代码包含
<? ?>
<? ?>
注意: 在
<?
!
方法1(php.ini文件)
还有一个简单的方法来解决你的问题。 searchshort_open_tag
属性值(在文本编辑器中使用Ctrl + F
!) ,并应用以下更改:
; short_open_tag = Off
至
short_open_tag = On
注意: 重新加载您的服务器(例如:Apache),并在您的浏览器中重新加载您的PHP网页。
只要去php.ini,然后findshort_open_tag= Off
设置为short_open_tag= On
检查你是否closures了你的class级。
例如,如果你有控制器类的方法,并意外删除最后一个括号,closures整个类,你会得到这个错误。
class someControler{ private $varr; public $varu; .. public function method { .. } .. }// if you forget to close the controller, you will get the error
另外,找一个评论//打破大括号
if (1==1) { //echo "it is true"; }
右大括号不会正确地closures条件部分,php将不会正确处理剩余的代码。
避免这个<? } ?>
确保你把<?php } ?>
我看到一些错误,我已经在下面解决了。
这是我得到的错误:
if (login()) {?> <h2>Welcome Administrator</h2> <a href=\"upload.php\">Upload Files</a> <br /> <a href=\"points.php\">Edit Points Tally</a> <?php} else { echo "Incorrect login details. Please login"; }
我就是这么做的:
<html> some code <?php function login() { if (empty ($_POST['username'])) { return false; } if (empty ($_POST['password'])) { return false; } $username = trim ($_POST['username']); $password = trim ($_POST['password']); $scrambled = md5 ($password . 'foo'); $link = mysqli_connect('localhost', 'root', 'password'); if (!$link) { $error = "Unable to connect to the database server"; include 'error.html.php'; exit (); } if (!mysqli_set_charset ($link, 'utf8')) { $error = "Unable to set database connection encoding"; include 'error.html.php'; exit (); } if (!mysqli_select_db ($link, 'foo')) { $error = "Unable to locate the foo database"; include 'error.html.php'; exit (); } $sql = "SELECT COUNT(*) FROM admin WHERE username = '$username' AND password = '$scrambled'"; $result = mysqli_query ($link, $sql); if (!$result) { return false; exit (); } $row = mysqli_fetch_array ($result); if ($row[0] > 0) { return true; } else { return false; } } if (login()) { echo '<h2>Welcome Administrator</h2> <a href=\"upload.php\">Upload Files</a> <br /> <a href=\"points.php\">Edit Points Tally</a>'; } else { echo "Incorrect login details. Please login"; } ?> some more html code </html>
查找任何循环或语句保持不变。
当我离开一个PHP的foreach时,我碰到了这个麻烦:标签没有封闭。
<?php foreach($many as $one): ?>
使用以下解决方法解决了语法错误: unexpected end of file
<?php endforeach; ?>
希望它可以帮助别人