Ankündigung

Einklappen
Keine Ankündigung bisher.

unexpected T_EXIT, auf 1 von 2 servern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Screeze
    hat ein Thema erstellt unexpected T_EXIT, auf 1 von 2 servern.

    unexpected T_EXIT, auf 1 von 2 servern

    Sry für den besch... titel, aber ich kann das Problem nicht besser kurz beschreiben^^

    Und zwar ist es eigenartig:

    Ich bekomme ein großes Projekt. Projektdateien sind ANSI kodiert.
    Wenn ich diese Dateien auf 2 versch. Server uploade funktioniert es auf beiden.

    Sobald ich mit NetBeans ein Projekt hinzufüge, kodierung natürlich auf ISO-8859-1 gestellt, mit diesen Dateien, und eine beliebige Datei bearbeite (seis nur ein kommentar eingefügt) und auf beide server uploade, so funktioniert sie auf dem 1. server wie gewohnt, aber auf dem 2. Server erhalte ich dann eigenartige meldungen.
    Z.b.:

    Parse error: syntax error, unexpected T_EXIT in ../core.page.php on line 1
    Wenn ich die Projektdateien nicht mit NetBeans, sondern mit notepad++ (kodierung ANSI wird automatisch erkannt)bearbeite, tritt dieser Effekt nicht auf.

    Meine Frage:
    Woher kommt der Fehler? Wieso nur auf 1 von 2 Servern? (beide Linux) Wie umgehe ich ihn? Google findet leider nichts passendes.

  • Gast-Avatar
    Ein Gast antwortete
    Ich kram das nochmal raus.

    Hab mich wieder mal mit dem Thema befasst, und bin dabei im NetBeans bugtracker auf einen eintrag gestoßen.

    Anscheinend gibts Probleme mit der interpretation von \r\n oder so, daraus resultieren dann statt einem zeilenumbruch immer 2 zeilenumbrüche, und beim speichern ein "crash" der datei auf manchen systemen. Zu problemen führt das manchmal wenn mehre entwickler arbeiten und nicht alle Netbeans benutzen... Nervig, weil ich mir jetzt nen andern Editor suchen muss.
    Welche sind denn anschauendswert?
    Anforderungen:

    -Syntax highlighting
    -funktionsvervollständigung (auch variablen ect.)
    -syntax prüfung auf korrektheit

    Ich weiß hier gabs maln thread dazu, aber da haben die meisten eben eins dieser funktionen nicht...

    Einen Kommentar schreiben:


  • David
    antwortet
    Tja, knifflig
    Hast Du einen verlässlichen Hexeditor (einen, der nicht "heimlich" die Codierung ändert), damit Du Dir die Zeilenumbrüche der "Originaldateien" mal ansehen kannst?
    Du kannst die Dateien auch erstmal in irgendein Archiv packen, übertragen und dann auf dem Server auspacken und testen.

    Und Du kannst auch mal ausprobieren, ob sie die Ausgabe von
    Code:
    <?php
    $source = 'core.php';
    
    $c = file_get_contents($source);
    echo '#\n\r: ', preg_match_all("/\r(?=\n)/", $c, $m), "<br />\n";
    echo '#\n: ', preg_match_all("/\n/", $c, $m), "<br />\n";
    echo '#\r: ', preg_match_all("/\r/", $c, $m), "<br />\n";
    bei Dir lokal von der Ausgabe auf dem Server unterscheidet.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wie schon gesagt, ich übertrage mit dem programm FileZilla, auf beide server.
    Die einstelungen der server kann ich nicht einsehen, sind nur webspace, auf jedenfall nicht der selbe anbieter, allerdings brauch ich nen anhaltspunkt dass ich suchen kann, der support des einen servers konnte mir noch nicht helfen^^

    Einen Kommentar schreiben:


  • David
    antwortet
    Werden die Dateien über FTP im Text/ASCII oder im Binary Modus übertragen?
    Überträgst Du die Dateien aus Netbeans heraus oder verwendest Du einen (anderen) ftp client?
    Ist auf beiden Servern a) der FTP Server und b) PHP in der gleichen Version und mit identischer Konfiguration installiert?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    interessant..

    Mit der kaputten Datei gibt er den Kompletten Quellcode, von Zeile 1 - zur letzten zeile, ohne zeilenumbrüche aus.
    (hier mal der Anfang)

    PHP-Code:
    10812 "<?phpif (defined('CMS_AKTIV') != TRUE) die('ACCESS DENITED !!!');if .......
    mit der normalen Datei
    nur die erste Zeile:
    PHP-Code:
    6 "<?php "
    Also scheinen wirklich die zeilenumbrüche schuld zu sein... aber wieso?

    Einen Kommentar schreiben:


  • David
    antwortet
    Wenn Du auf dem Server, auf dem die Skripte nicht funktionieren,
    PHP-Code:
    <?php
    $source 
    'nichtfunktioniernde.php';

    $fp fopen($source'rb') or die('!fopen');
    $s fgets($fp);
    echo 
    strlen($s), ' "'htmlspecialchars($s), '"';
    (am besten diese core.php mit unexpected T_EXIT in ../core.page.php on line 1, vorher nochmal testen, ob der Fehler wirklich noch auftritt) ausführst, zeigt es Dir nur die erste Zeile an oder mehr?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Auf den lokalen Server werden sie nicht übertragen, da werden sie direkt im richtigen verzeichnis bearbeitet (funktioniert)
    Auf Server 1 & 2werden sie mit FileZilla über ftp übertragen (funktioniert 1x, 1x nicht)

    Einen Kommentar schreiben:


  • David
    antwortet
    Wie überträgst Du die Dateien auf die Server?

    Es kann natürlich auch ein ganz anderes Problem sein. Aber das wäre die Richtung, in der ich suchen würde.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hmm und wieso dann nur auf 1 server? auf lokalem windows, auf 1 von 2 linux servern funktionierts, warum nicht auf dem 2. Linux?
    Woher kann sowas kommen und wie kann ich dagegen vorgehen?

    Einen Kommentar schreiben:


  • David
    antwortet
    Das ist zeile Eins^^
    Dann tippe ich immer noch auf "kaputte" Zeilenumbrüche.

    T_EXIT wird nur geliefert, wenn der Parser/Lexer auf ein exit() oder die() im Code stößt
    Zitat von zend_language_scanner.l
    <ST_IN_SCRIPTING>"exit" {
    return T_EXIT;
    }

    <ST_IN_SCRIPTING>"die" {
    return T_EXIT;
    }
    Wenn PHP also der Meinung ist, dass ein exit oder die in Zeile 1 steht, bei Dir aber Zeile 1 nur <?php enthält, muss irgendetwas mit den Zeilenumbrüchen nicht stimmen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Du willst zeile eins?
    Biddeschön:

    PHP-Code:
    <?php
    Das ist zeile Eins^^

    Wenn ich ein neues Projekt Ohne bestehenden Source erstelle, so funktioniert es, wenn ich ein Projekt mit bestehendem source erstelle nichtmehr.

    Ist es egal, welche Datei Du änderst? Irgendeine Datei anfassen -> *boom*?
    Jep, sobald ich eine Datei anfasse ist diese Eine Datei geschrottet für den Server, er kann dann damit nichtmehr umgehen.

    Auf einem Mac wurden sie meines wissens nicht bearbeitet.

    Einen Kommentar schreiben:


  • David
    antwortet
    Präambel: Ich weiß es nicht.

    on line 1
    Eine Zeile, ein Fehler, nicht schlecht. Was steht denn in diesem Fall in Zeile 1?
    Sind die Dateien vorher zum Beispiel auf einem Mac bearbeitet worden?
    Wenn Du ein völlig neues Projekt mit netbeans anlegst, akzeptieren beide Server die Dateien also: es liegt wirklich am Ändern der bestehenden Dateien)?
    Ist es egal, welche Datei Du änderst? Irgendeine Datei anfassen -> *boom*?

    Einen Kommentar schreiben:

Lädt...
X