rätselhafter PHP-Parserfehler

8

Ok, vielleicht nicht so rätselhaft, aber hier ist es.

Ich habe rumgemacht und das bemerkt, indem ich nur <?php in eine Datei eingegeben habe, nur das, kein Leerzeichen danach, sonst nichts als das Tag, wirft einen Parsefehler.

Mit einem einzigen Leerzeichen funktioniert es gut. Ich habe mich gefragt, ob irgendjemand weiß, warum der Parser erstickt, denn es ist völlig in Ordnung, das schließende Tag zu ignorieren. Danke.

    
frostymarvelous 17.07.2011, 22:14
quelle

3 Antworten

6

Die PHP-Dokumentation lautet:

  

In PHP 5.2 und früher erlaubt der Parser das Öffnen von <?php nicht   Tag ist das einzige Ding in einer Datei. Dies ist ab PHP 5.3 erlaubt.

Wenn in PHP 5.3% short_open_tags auf On in Ihrer php.ini -Datei gesetzt ist, wird der Fehler immer noch angezeigt.

    
Francois Deschenes 17.07.2011, 22:29
quelle
2

Dies beantwortet in der PHP-Dokumentation für grundlegende Syntax :

  

In PHP 5.2 und früher erlaubt der Parser das Öffnen von <?php nicht   Tag ist das einzige Ding in einer Datei. Dies ist ab PHP 5.3 erlaubt.

Es scheint jedoch, dass das öffnende Tag + Leerzeichen vom OP erlaubt ist (d. h. ist nicht das einzige Ding in einer Datei ). Aus den Kommentaren geht hervor, dass dies bei Distro-Versionen oder anderslautenden gepatchten nicht der Fall ist.

    
Jason McCreary 17.07.2011 22:26
quelle
1

Meine PHP Version:

%Vor%

Der betreffende Code:

%Vor%

Hinzufügen von mehr neben <?php :

%Vor%

oder

%Vor%

und dann ein Leerzeichen:

%Vor%

(schließlich leere Ausgabe).

Diese PHP-Version gibt mir keinen Parse error: syntax error, unexpected $end -Typ der Nachricht für die obigen Beispiele, aber es macht folgendes:

%Vor%

Ich hoffe, es hilft. In meinen Augen sieht das so aus, dass die Eingabe nur als Text behandelt wird, bis ein Leerzeichen auf die <?php Öffnungssequenz folgt.

    
hakre 17.07.2011 22:49
quelle

Tags und Links