Include schlägt fehl

Seppi123

Erfahrenes Mitglied
Moin moin liebe Community.

Ich erstelle derzeit (ein Spaßprojekt um mir TCP und die Protokolle besser beizubringen) einen kleinen Webserver.

Nun zum Problem.

Ich starte PHP mit folgenden Parametern direkt aus dem Server heraus:
Code:
php.exe -f <DATEI.php>

Dies klappt auch soweit, wenn ich den Output auslese und es an den Webbrowser übergebe. Aber bei include bzw. require will er einfach nicht und zeigt mir eine leere Seite an (Weiß). Ich habe in der php.ini bereits folgende Einträge bearbeitet:
Code:
include_path = ".;C:\Users\Sebastian\Desktop\HTTPServer\www"
doc_root = ".;C:\Users\Sebastian\Desktop\SeviHTTPServer\www"

Diese beiden Einstellungen habe ich sowohl mit Slash als auch, wie oben geschrieben, mit Backslash (bei Pfadangaben ja üblich) versucht.


Ich hoffe mir kann da jemand helfen, denn ich bin absolut ratlos wieso die Pfadangaben nicht genügen, da diese direkt in das Hauptverzeichnis der Webseite (in dem Falle 'www') verweist.
 
Hi

versuch immer zwei Backslashes statt einem zu nehmen, also C:\\Users usw.

Ein fehlgeschlagenes Include/Require sollte aber auch eine Fehlermeldung ausgeben,
wenn man die Meldungen eingeschaltet hat. error_reporting(E_ALL); und
ini_set('display_errors', true); am Scriptanfang.
 
Du bist ein Lebensretter :) Mit den \\ funktioniert es perfekt. Komisch, dass es im Manual und in der php.ini mit nur einem Backslash beschrieben wurde ... :confused:

Fehlermeldungen waren auf E_ALL und auch display_errors auf true. Desswegen habe ich das irgendwie nicht verstanden warum es lediglich eine weiße Seite war.

Vielen Dank und schönen Tag :)
 
Du kannst im Grunde ansonsten auch einfach Slashes verwenden. Die sollte Windows (bzw. PHP unter Windows – ich weiß es nicht genau) auch verstehen. Wobei das vielleicht nicht so hübsch ist. Aber gut, so als Anmerkung am Rande. :)

Btw: Kannst du es noch mal falsch machen (einfache Backslashes) und dann mal in einem Script nur var_dump(get_include_path()); schreiben? Mich würde schon interessieren, was da falsch läuft. (Kann es selbst nicht testen, da ich kein Windows habe.)
 
Bin mir nicht sicher, ob das die Frage ist, aber "Escape-Sequenzen"?
So wie \n ein Zeilenwechsel ist usw.
 
War auch mein erster Gedanke, konnte ich aber weder theoretisch noch mit set_include_path() rekonstruieren.

PHP:
<?php

set_include_path(".;C:\Users\Sebastian\Desktop\HTTPServer\www");

var_dump(get_include_path());
   // string(43) ".;C:\Users\Sebastian\Desktop\HTTPServer\www"

Ich könnte mir aber auch noch vorstellen, dass der Ini-Parser vielleicht noch mal ein stripslashes() macht aus irgendeinem Grund. Ist mir aber zu viel Gefummel, das zu testen. Zumal es eben auch am OS liegen kann. Wieso auch immer.

Edit: Auch parse_ini_string() zeigt keine Auffälligkeiten.

PHP:
<?php

$data = <<<'EOT'
include_path = ".;C:\Users\Sebastian\Desktop\HTTPServer\www"
EOT;

var_dump(parse_ini_string($data));

// array(1) {
//   ["include_path"]=>
//   string(43) ".;C:\Users\Sebastian\Desktop\HTTPServer\www"
// }
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück