Alexender: include_path

Hallo,

ich muss mit meinen Projekten immer zwischen Windows und Linux wechseln. Einerseits entwickle ich was bei mir lokal unter Windows und zum Testen geht das Projekt dann auf Webserver und läuft unter Linux.

Wie ist es am elegantesten mit "onclude_path". Bei Windows werden mehrere Pfade mit ";" getrennt und bei Linux mit ":". Ohne dass man die ändern muss.

$sgServerSoftware = strtolower ($_SERVER['SERVER_SOFTWARE']);
$sgSysDelimiter = (strstr ($sgServerSoftware, 'win')) ? ';' : ':';
ini_set('include_path', '.'.$sgSysDelimiter.'./includes'
      . $sgSysDelimiter.'./../includes'.$sgSysDelimiter.'./modules');

Ist die Lösung gut? Oder gibt es eine bessere?

Gruss Alexender.

  1. Ist die Lösung gut? Oder gibt es eine bessere?

    Ja, gibt es, und zwar die vordefinierte Konstante DIRECTORY_SEPARATOR

    Mein Vorschlag (ist wie ich finde auch übersichtlicher):

    $pfade = array(
     'pfad1',
     'pfad2',
     'pfad3');

    ini_set('include_path', implode(DIRECTORY_SEPARATOR, $pfade));

    1. Ja, gibt es, und zwar die vordefinierte Konstante DIRECTORY_SEPARATOR

      Ich glaube DIRECCTORY_SEPARATOR ist ganz was anderes und zwar "/". Es geht aber um ";" oder ":".

      Gruss Alexender.

      1. Hello,

        Ja, gibt es, und zwar die vordefinierte Konstante DIRECTORY_SEPARATOR

        Ich glaube DIRECCTORY_SEPARATOR ist ganz was anderes und zwar "/". Es geht aber um ";" oder ":".

        Dann schau mal unter http://de3.php.net/function.get_include_path und suche dort nach PATH_SEPARATOR.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Ich glaube DIRECCTORY_SEPARATOR ist ganz was anderes und zwar "/". Es geht aber um ";" oder ":".

          Dann schau mal unter http://de3.php.net/function.get_include_path und suche dort nach PATH_SEPARATOR.

          Genau den hab ich gemeint, da die Dinger aber ziemlich gut in der PHP-Doku versteckt sind, hab ich in der Eile halt den falschen erwischt.

          In der englischen Doku im Appendix J gibt es die "Standard Predefined Constants" da steht der PATH_SEPARATOR drin, in der deutschen Übersetzung fehlt er leider.

          1. Hello,

            In der englischen Doku im Appendix J gibt es die "Standard Predefined Constants" da steht der PATH_SEPARATOR drin, in der deutschen Übersetzung fehlt er leider.

            Es gibt auch Teile in der deutschen Doku, die (tageweise) der englischen vorauseilen. Im Moment scheint da einiges in Bewegung zu sein und das Self-Forum als Rückfrage-Versicherung ist auf jeden Fall Gold wert.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Es gibt auch Teile in der deutschen Doku, die (tageweise) der englischen vorauseilen.

              Wie das denn? Und was ist denn dann das Original und was die Übersetzung? :-)

              1. Hello,

                Es gibt auch Teile in der deutschen Doku, die (tageweise) der englischen vorauseilen.

                Wie das denn? Und was ist denn dann das Original und was die Übersetzung? :-)

                Das ist mir auch erst neulich aufgefallen, dass die Dinge teilweise anders sortiert sind und der eine oder andere Tipp mal ausnahmsweise in der englischen Version gefehlt hat, während er in der deutschen ausführlich drin stand.

                Ein Beispiel ist die Beschreibung der INI-Parameter (gewesen?).

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
        2. Dann schau mal unter http://de3.php.net/function.get_include_path und suche dort nach PATH_SEPARATOR.

          Das ist korrekte Antwort. Danke.

          Gruss A.

          1. Hello,

            Dann schau mal unter http://de3.php.net/function.get_include_path und suche dort nach PATH_SEPARATOR.

            Das ist korrekte Antwort. Danke.

            Macht nix. Ein tauber Hahn findet auch mal ein ...

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
    2. Hello,

      Ist die Lösung gut? Oder gibt es eine bessere?
      Ja, gibt es, und zwar die vordefinierte Konstante DIRECTORY_SEPARATOR

      Oh, seit langem mal wieder was dazugelernt ;-)
      Ich habe mir den immer selber angelegt.

      Aber auch daran denken, dass es sich hier nicht wirklich um Pfade, sondern um Muster handelt.
      Das hat schon Vielen riesenhafte Sicherheitslöcher reingerissen, weil sie es nicht beachtet haben.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau