Parse-Fehler: Syntaxfehler, unerwartetes Dateiende in meinem PHP-Code

Lesezeit: 6 Minuten

Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
Pratnala

Ich habe einen Fehler:

Parse error: syntax error, unexpected end of file in the line

Mit diesem Code:

<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>

Was ist das Problem?

  • Ich könnte mir vorstellen, dass Sie einen Fehler mit einem Teil Ihres PHP-Codes haben … den Sie nicht gepostet haben.

    – Yacoby

    14. Juli 2012 um 9:22 Uhr

  • Es hört sich so an, als hätten Sie ein fehlendes ‘}’, ‘;’ oder Klammer, aber es würde helfen, wenn Sie Ihren gesamten PHP-Code posten würden

    – ryanc1256

    14. Juli 2012 um 9:23 Uhr

  • Eineinhalb Jahre später ist es lustig, dass diese Frage geschlossen wurde, weil sie zu lokalisiert ist, aber fast 50.000 Aufrufe hat.

    – Pratnala

    6. November 2013 um 11:19 Uhr

  • Ich stimme zu … das hat mein Problem vollständig behoben. Überhaupt nicht lokalisiert in Bezug auf die Frage und die Lösung.

    – Rocco Der Taco

    2. September 2016 um 9:35 Uhr

  • Prüfen Sie auch nach short_tags in Ihrer php.ini unter BEIDE apache und cli Konfigurationen

    – AO_

    1. November 2016 um 14:40 Uhr

Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
j0k

Sie sollten dies vermeiden (am Ende Ihres Codes):

{?>

und das:

<?php}

Sie sollten Klammern nicht direkt in die Nähe des Öffnens/Schließens setzen php -Tag, aber trennen Sie es mit einem Leerzeichen:

{ ?>
<?php {

auch meiden <? und verwenden <?php

  • Falls es jemandem hilft: Ich habe einen ähnlichen Fehler, aber verursacht durch <? } ?> anstatt <?php } ?>.

    – Adam Libuša

    7. November 2013 um 13:06 Uhr


  • Ich hatte ein ähnliches Problem, aber mein Fall war, dass ich short_open_tag = Off in meiner php.ini hatte. Als ich es auf Ein stellte, funktionierte mein Code.

    – bksi

    12. Februar 2014 um 19:31 Uhr

  • Beachten Sie, dass Apache dies Nginx nicht akzeptiert (oder eher fcgi nicht), wenn Sie also ratlos sind, warum dies auf einem Webserver funktioniert und nicht auf einem anderen, wissen Sie warum

    – Sammaye

    18. Juli 2014 um 13:53 Uhr

  • Können Sie hinzufügen, um auch dieses die Kommentar-Schrägstriche töten das schließende ?>

    – Andrea Bogazzi

    27. November 2015 um 17:37 Uhr


  • Gibt es einen Grund <? und <?= sollte vermieden werden? Sie wurden mir als nützliche Abkürzungen beigebracht.

    – Hashim Aziz

    20. Januar 2021 um 0:26 Uhr


Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
Archana Balachandran

Ich hatte den gleichen Fehler, aber ich hatte ihn durch Ändern der behoben php.ini Datei.

Finden Sie Ihre php.ini-Datei, siehe Alter, wo ist meine php.ini?

Öffnen Sie es dann mit Ihrem bevorzugten Editor.

Suche nach einem short_open_tag -Eigenschaft, und wenden Sie die folgende Änderung an:

; short_open_tag = Off ; previous value
short_open_tag = On ; new value

  • Diese Antwort ist besonders wichtig, wenn es um Legacy-Code geht. Ich habe Code geerbt, der von jemand anderem geschrieben wurde, und die Codebasis war voll von <? ?> (Achtung, das Fehlen php). Ich habe die Aufgabe, Funktionen hinzuzufügen oder zu ändern, und es ist normalerweise keine gute Idee, einfach herumzulaufen und Änderungen vorzunehmen alles nur für ein oder zwei Features. Deine Antwort hat wirklich geholfen.

    – Sal Rahman

    11. Februar 2016 um 18:54 Uhr

  • Genau, dies ist besonders bemerkenswert, wenn Sie beispielsweise auf die neuere Plesk-Hosting-Software oder Ihre PHP-Version aktualisiert haben. Wir haben festgestellt, dass die php.ini-Einstellungen zerstört wurden und wir sie erneut festlegen mussten. Diese spezielle Einstellung war erforderlich, um den unerwarteten Fehler am Ende der Datei zu vermeiden

    – Trevor

    17. Oktober 2017 um 20:33 Uhr

1646262131 899 Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
Suriyaa

Ich hatte den gleichen Fehler, aber ich habe ihn behoben, indem ich die php.ini geändert und / oder die PHP-Datei bearbeitet habe!

Es gibt zwei verschiedene Methoden, um die Parsing-Fehlersyntax zu umgehen.

Methode 1 (Ihre PHP-Datei)

Vermeiden Sie in Ihrer PHP-Datei Folgendes:

<? } ?>

Stellen Sie sicher, dass Sie es so formulieren

<?php ?>

Ihr Code enthält <? ?>

HINWEIS: Das fehlende php nach dem <?!

Methode 2 (php.ini-Datei)

Es gibt auch eine einfache Möglichkeit, Ihr Problem zu lösen. Suche nach dem short_open_tag Eigentumswert (Verwenden Sie in Ihrem Texteditor mit Ctrl + F!)und wenden Sie die folgende Änderung an:

; short_open_tag = Off

zu

short_open_tag = On

Entsprechend der Beschreibung der wichtigsten php.ini-Direktiven, short_open_tag ermöglicht Ihnen die Verwendung des kurzen offenen Tags (<?) obwohl dies kann Probleme verursachen, wenn es mit xml verwendet wird (<?xml funktioniert nicht, wenn dies aktiviert ist)!

HINWEIS: Laden Sie Ihren Server neu (wie zum Beispiel: Apache) und laden Sie Ihre PHP-Webseite in Ihrem Browser neu.

Gehen Sie einfach zu php.ini und suchen Sie short_open_tag= Off einstellen short_open_tag= On

1646262131 816 Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
linda93

Achten Sie auch auf die Kennungen zum Schließen von Heredocs.

Ungültiges Beispiel:

// it's not working!!!

function findAll() {
    $query=<<<SQL
        SELECT * FROM `table_1`;
    SQL; // <-------- THIS IS BAD

    // ...
}

Dadurch wird eine Ausnahme ausgelöst, die der folgenden ähnelt:

<br />
<b>Parse error</b>:  syntax error, unexpected end of file in <b>[...][...]</b> on line <b>5</b><br />

wobei Nummer 5 die letzte Zeilennummer Ihrer Datei sein könnte.

Entsprechend php-Handbuch:

Warnung
Es ist sehr wichtig zu beachten, dass die Zeile mit der Schlusskennung keine anderen Zeichen außer einem Semikolon (;) enthalten darf. Das bedeutet insbesondere, dass der Bezeichner nicht eingerückt sein darf und vor oder nach dem Semikolon keine Leerzeichen oder Tabulatoren stehen dürfen. Es ist auch wichtig zu wissen, dass das erste Zeichen vor dem schließenden Bezeichner ein Zeilenumbruch sein muss, wie vom lokalen Betriebssystem definiert. Dies ist \n auf UNIX-Systemen, einschließlich macOS. Auf das schließende Trennzeichen muss außerdem ein Zeilenumbruch folgen.

TLDR: Schließende Identifikatoren sollten NICHT eingerückt sein.

Gültiges Beispiel:

function findAll() {
    $query=<<<SQL
        SELECT * FROM `table_1`;
SQL;
    // closing identifier should not be indented, although it might look ugly

    // ...
}

  • Ich danke dir sehr! Das war es für mich nach scheinbar endlosem Abgleich von öffnenden und schließenden Tags.

    – Sjors Hijgenaar

    24. September 2020 um 18:20 Uhr

1646262132 583 Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
Imtiaz

Suchen Sie nach Schleifen oder Anweisungen, die nicht geschlossen wurden.

Ich war auf dieses Problem gestoßen, als ich ein php-foreach:-Tag nicht geschlossen ließ.

<?php foreach($many as $one): ?>

Das Schließen mit dem folgenden löste den Syntaxfehler: unexpected end of file

<?php endforeach; ?>

Hoffe es hilft jemandem

  • Ich danke dir sehr! Das war es für mich nach scheinbar endlosem Abgleich von öffnenden und schließenden Tags.

    – Sjors Hijgenaar

    24. September 2020 um 18:20 Uhr

1646262132 48 Parse Fehler Syntaxfehler unerwartetes Dateiende in meinem PHP Code
Olga

Überprüfen Sie, ob Sie Ihre Klasse geschlossen haben.

Wenn Sie beispielsweise eine Controller-Klasse mit Methoden haben und versehentlich die letzte Klammer löschen, die die gesamte Klasse schließt, erhalten Sie diesen Fehler.

class someControler{
private $varr;
public $varu;
..
public function method {
..
} 
..
}// if you forget to close the controller, you will get the error

917040cookie-checkParse-Fehler: Syntaxfehler, unerwartetes Dateiende in meinem PHP-Code

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy