susi: include() und pfade ... ich versteh es nicht, bitte erklärt es?

hallo,

ich hab soeben die seite php.net gut durchforstet aber leider versteh eich folgenden satz nicht annähernd!

"Dateien die mit include eingebunden werden, werden zuerst im include_path relativ zum gegenwärtigen Arbeitsverzeichnis gesucht und danach im include_path relativ zum Verzeichnis des ausgeführten Skripts. "

was ist nun das arbeitsverzeichnis und was ist der unterschied zu dem folder des scripts?

die frage kommt daher das ich phptal in dem fall nicht inkludieren kann wenn ich den include_path ind er phph.ini nicht umschreibe was ich nicht tun will!

wenn eine datei mit "include('PHPTAL/blabla.php');" eingebunden wird, warum nimmt er nicht das blabla.php relativ zum verzeichnis von dem script welches dieses include inkuldiert!

kann ja nicht sein dass man immer die php.ini umschrieben muss?
bzw. was tun leut auf shared server?

lg, susi

  1. Hellihello

    wenn eine datei mit "include('PHPTAL/blabla.php');" eingebunden wird, warum nimmt er nicht das blabla.php relativ zum verzeichnis von dem script welches dieses include inkuldiert!

    Genau das sollte so sein. Es muss ein Ordner PHPTAL vorhanden sein, darin ein Script "blabla.php". Der aktuelle Ordner ist das Script, von dem aus includiert wird. Das kann "tricky" werden, wenn diese Script dann wieder includiert.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
    1. Genau das sollte so sein. Es muss ein Ordner PHPTAL vorhanden sein, darin ein Script "blabla.php". Der aktuelle Ordner ist das Script, von dem aus includiert wird. Das kann "tricky" werden, wenn diese Script dann wieder includiert.

      und genau dies ist der fall ... wie wird dies gehandhabt?

      1. Hellihello

        Genau das sollte so sein. Es muss ein Ordner PHPTAL vorhanden sein, darin ein Script "blabla.php". Der aktuelle Ordner ist das Script, von dem aus includiert wird. Das kann "tricky" werden, wenn diese Script dann wieder includiert.

        Du bist immer im Verzeichnis des obersten Scripts.

        script1 incluiert script2 aus ("dir2/script.inc.php") und das wieder script3 in "dir3/script.inc.php"). Du bist aber immer im Verzeichnis von script1. Includieren ist das selbe, als wie wenn der Code im Script drinstünde. "Nimme den Inhalt der Datei xyz.inc.php und (schreib ihn hierhin - bildlich) und führe ihn aus.

        und genau dies ist der fall ... wie wird dies gehandhabt?

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
        1. danke ...

          lg susi

  2. echo $begrüßung;

    "Dateien die mit include eingebunden werden, werden zuerst im include_path relativ zum gegenwärtigen Arbeitsverzeichnis gesucht und danach im include_path relativ zum Verzeichnis des ausgeführten Skripts. "

    was ist nun das arbeitsverzeichnis und was ist der unterschied zu dem folder des scripts?

    Beim Scriptstart ist das aktuelle Verzeichnis dasjenige, in dem das Script liegt. Das aktuelle Verzeichnis kann aber mit der Funktion chdir() geändert werden.

    kann ja nicht sein dass man immer die php.ini umschrieben muss?

    include_path ist eine Direktive, die PHP_INI_ALL-changeable ist. Du kannst sie also auch noch im Script mittels ini_set() ändern. Außerdem gibt es je nach System noch die Möglichkeit, Direktiven in der .htaccess zu ändern (PHP als Apache-Modul) oder eine eigene php.ini im Verzeichnis anzulegen (CGI-Variante)

    echo "$verabschiedung $name";