wget/curl bei PHP Dateien auf Webspace

  • Wenn ich per wget oder curl eine PHP Datei vom Webhosting 2000 Webspace ziehe wird die erste Zeile verschluckt.


    nano test.php


    Inhalt:


    #z1

    #z2

    #z3


    gehe ich nun auf einen anderen Server oder meine Windows Workstation und benutze


    curl https://server/test.php


    kommt folgendes an:


    #z2

    #z3


    mit


    wget https://server/test.php


    sehe ich auch, dass die Datei die ankommt kleiner geworden ist.


    Was ist hier los?


    Ich habe heute auch einen Webspace bei 1&1 angelegt. Dort tritt das gleiche Problem auf.


    Danach hab ich mit meinem selbst aufgesetzten Debian 9.5 Webserber mit nginx und PHP 7.0.30-0+deb9u1 getestet, und dort tritt das Problem nicht auf!

  • Enthält die erste Zeile womöglich PHP-Tags oder ähnliches, die auf deinem eigenen nginx nicht ausgeführt werden und somit ausgeliefert werden? zB. weil der short-Tag benutzt wird? Der ist ja bei PHP7 standardmäßig deaktiviert. Ich glaube unter dem Webhosting läuft (wenn man es nicht umstellt) glaube ich PHP5.


    (Korrigiert mich, wenn ich falsch liege)

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Moin,


    das was du mit wget erhälst, ist das was der Webserver *vorher* intepretiert hat.

    Man kann keine php Dateien direkt herunter laden, nur das was der Webserver daraus gemacht hat.

  • Steht dort wirklich ein Rautezeichen am Anfang der ersten Zeile, die verschluckt wird? Dann wird es eventuell als Shebang interpretiert und dementsprechend heraus gefiltert: https://de.wikipedia.org/wiki/Shebang


    Bitte teste es nochmals mit einem anderen Inhalt. Das unterschiedliche Verhalten lässt sich eventuell dadurch erklären, dass PHP bei den getesteten Systemen anders eingebunden ist. (mod_php, CGI, FastCGI, FPM, …)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hay,


    vielleicht sollte man mal fragen, was das ganze soll... willst Du den Inhalt der php-Datei oder den erzeugten Output der php-Datei?


    So bekommst Du den Output, d.h. das, was vom Webserver daraus gemacht wird - weil der handler (bei dem Verhalten also vermutlich ein CGI-Handler) für php weiß, dass es eine ausführbare Datei ist, findet das "#" in der ersten Zeile, weil das ein Shebang aussieht, findet keinen Interpreter dafür, schmeißt die (ungültige) Zeile weg und schickt den Rest als Output.


    Wenn Du die php-Datei als solche willst, bekommst Du nicht per wget oder curl, sondern nur durch eine "echte" Übertragung wie ftp...


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • Hay,

    Oder indem er die Datei in ".php.txt" umbenennt für die Übertragung per HTTP

    lol, oder so.


    Anstatt eine Schraube zu nehmen, nimmt man einen Nagel und schlägt ihn mit dem Griff des Schraubenziehers in die Wand. Tut weh (dem Betrachter noch mehr als dem Nutzer), kann man aber so machen.


    Im Moment ist es für mich aber eher eine Datei mit Owner schroedinger:katze: Ob wirklich eine .php oder doch nur eine getarnte .txt bleibt offen, deswegen fragte ich nach dem Hintergrund.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.