Sönke Tesch: ... include ...

Beitrag lesen

was mache ich falsch? Ich möchte ein vorgefertigtes Script in einer anderen PHP-Datei "index.php" >includen<.

Das problem ist, dass wenn ich dieses vogefertige Script aus einem Unterverzeichnis ausführen will wird versucht dies im egentlichen Hauptverzeichnis auszuführen - dort wo sich auch die index.php sich befindet.

Du darfst Dir include() nicht so vorstellen, daß das Hauptskript das "Unterskript" ausführt. include() bewirkt nichts anderes als das, was der Name schon sagt: Einfügen. Das Unterskript wird quasi genau so an der Stelle in das Hauptskript eingefügt, als wenn Du es mit dem Texteditor selbst reinkopiert hättest.

Muss ich im iclude-Befehl noch irgendwelche Angaben wie basisverzeichnis oder so machen?

Du kannst mit chdir() das aktuelle Verzeichnis wechseln, etwa so:

chdir("bla");
  include("tralala.php"); // Skript tralala.php aus Verzeichnis bla

Hab's nicht ausprobiert, sollte aber funktionieren. Ich weiß jetzt nur dummerweise im Moment nicht, wir man nach dem include() wieder in das alte Verzeichnis zurück wechselt. Lass Dir mit phpinfo(INFO_VARIABLES); die PHP-Variablen ausgeben, dort taucht sicherlich irgendwo der Name des alten Startverzeichnisses auf.

Willst Du ein Skript ausführen, kannst Du statt include() virtual() ausprobieren (siehe auch <?m=140057&t=25582>) - das ist aber mit Vorsicht zu genießen, wenn das auszuführende Skript ebenfalls in PHP geschrieben ist.

chdir() ist im Kapitel "directory functions" beschrieben, virtual() in "apache functions".

Gruß,
  soenk.e