Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный конец файла в мой 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>
в чем проблема?
11 ответов
вы должны избегать этого (в конце кода):
{?>
и так:
<?php}
вы не должны ставить скобки непосредственно близко к open / close php
тег, но он отделяется пробелом:
{ ?>
<?php {
избежать <?
и использовать <?php
у меня была такая же ошибка, но я ее исправил, изменив .
найдите свой php.файл ini см. В статье чувак, где мой php.Ини?
затем откройте его с помощью своего любимого редактора.
искать short_open_tag
свойство и применить следующее изменение:
; short_open_tag = Off ; previous value
short_open_tag = On ; new value
у меня была такая же ошибка, но я ее исправил, изменив php.ini и / или редактирование файла PHP!
существует два разных способа обойти синтаксис ошибки синтаксического анализа.
метод 1 (Ваш PHP-файл)
Избегайте в своем PHP-файле этого:
<? } ?>
убедитесь, что вы положили его так
<?php ?>
код содержит
<? ?>
Примечание: отсутствует
php
после<?
!
Метод 2 (php.ini-файл)
существует также простой способ решить вашу проблему.
Поиск short_open_tag
значение свойства (используйте в текстовом редакторе с Ctrl + F
!), и примените следующее изменение:
; short_open_tag = Off
to
short_open_tag = On
по словам описание основного php.ini директивы, short_open_tag
позволяет использовать короткий открывающий тег (<?
) хотя это может вызвать проблемы при использовании с xml (<?xml
не будет работать, когда это включено)!
Примечание: перезагрузите сервер (например, Apache) и перезагрузите веб-страницу PHP в браузере.
проверьте, что вы закрыли свой класс.
например, если у вас есть класс с методами, и случайно вы удалили финальную сетку, которая закрывает весь класс, вы получите эту ошибку.
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"; }
закрывающая фигурная скобка неправильно закроет условный раздел, а php неправильно обработает оставшуюся часть кода.
Ищите любые циклы или операторы, оставленные незамкнутыми.
я столкнулся с этой проблемой, когда оставил php foreach: tag unclosed.
<?php foreach($many as $one): ?>
закрывая его, используя следующую решенную синтаксическую ошибку:unexpected end of file
<?php endforeach; ?>
надеюсь, это поможет кому-то
Я видел некоторые ошибки, которые я исправил ниже.
вот что я получил как ошибочное:
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
function () {
}
файл выше возвращает erro Parse error: syntax error, unexpected end of file in
в то время как ниже нет.
<?php
function () {
};
Если вы используете parse_ini_file ($file) или подпрограмму rading an .ini-файл, проверьте, указаны ли ваши данные в ini-файле. Неквотируемые данные вызовут эту ошибку. Ex; data1=test вызовет ошибку, data1= "test" - нет.