PHP include file.php? "No such file"?


29.12.2020, 13:51

ich hab es jetzt

include('./second2/target/file2.php')

war die Lösung. Aber eine andere alternative findet sich auch in den Antworten.

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Auf den ersten Blick sieht der Pfad richtig aus. Allerdings vermute ich mal, dass du nicht direkt die file1.php aufrufst, sondern eine index.php und die wiederum included die file1.php. Dann ist das aktuelle Verzeichnis nämlich das der index.php.

Um hier immer mit absoluten Pfaden zu arbeiten, würde ich dir hierzu raten:

include($_SERVER['DOCUMENT_ROOT'].'/second2/target/file2.php');

Das sollte dann überall funktionieren.

Woher ich das weiß:Beruf – Entwickle seit > 20 Jahren Anwendungen mit PHP.

ok interessant, danke. Das ist ein nützlicher Tipp,

hab habe gerade durch Zufall rausgefunden das

include('./second2/target/file2.php')

funktioniert.

Ich versteh noch nicht ganz was, was bewirkt beim navigieren durch die Verzeichnisse.

Es gibt ja

.
..
// glabe ich
./

Vielleicht kannst mir das kurz erklären was es da so gibt und was genau was macht

0
@pentihunter

Ich habe doch schon geschrieben (zumindest vermutet), warum das so ist. Du rufst nicht /second1/third1/start/file1.php auf, sondern ein Script aus dem DocRoot (bspw. /index.php) und hast dort so was stehen:

include('/second1/third1/start/file1.php');

Damit ist dann aber das aktuelle Arbeitsverzeichnis in der file1.php nicht /second1/third1/start, sondern nur /.

Daher funktioniert auch dein:

include('./second2/target/file2.php')

… da der Punkt für das aktuelle Verzeichnis steht. Das würde aber dann nicht mehr funktionieren, wenn du bspw. file1.php direkt aufrufst oder von einem anderen Script aus in einem anderen Verzeichnis aus.

Deshalb solltest du lieber meine vorgeschlagene Variante ausprobieren, da die überall zuverlässig funktioniert.

0

Schaut eigentlich gut aus.

Unbedingt darauf achten, dass die Groß/Kleinschreibung korrekt ist. Das könnte noch ein Fehler sein.

Woher ich das weiß:Beruf – Informatik-Studium+arbeite seit vielen Jahren in der IT

danke für deine hilfe.

mit

include('./second2/target/file2.php')

ging das auf jeden fall.

Groß und Kleinschreibung war nicht das Problem.

1

Was möchtest Du wissen?