Ankündigung

Einklappen
Keine Ankündigung bisher.

relativer pfad zu dirname(__FILE__)) ??

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • relativer pfad zu dirname(__FILE__)) ??

    folgendes problem.. ich will den relativen serverpfad zum file das ich inkludiert ausführe...

    hiermit:
    PHP-Code:
    dirname(__FILE__
    bekomm ich zwar das verzeichnis, aber absolut.

    wie ändere ich das am besten in den serverpfad?

    klar könnte ich eine variable fix definieren, aber das ist nicht das ziel. da das skript "überall" liegen können soll.

    W:\www\dinger\system\inc\sel
    darus soll nun "localhost/dinger/system/inc/sel" werden oder "www.irgendwas.com/dinger/system/inc/sel" auf dem server.
    www.scriptforums.com - Foren für Skripts
    www.ragonvote.net - Kostenlose Umfragen
    www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)


  • #2
    PHP: $_SERVER - Manual
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Krise! irgendwas mach ich falsch..

      PHP-Code:
      <?
      //test.php
      include("include/inc.php");
      ?>

      inkludiert..
      <?
      //inc.php
      /**
      echo $_SERVER[SCRIPT_FILENAME].'<br>';
      echo $_SERVER[SCRIPT_NAME].'<br>';
      **/
      echo dirname($_SERVER[PHP_SELF]);
      ?>
      Gibt:
      "/system"

      ich brauch aber ziemlich genau "/system/include" und nicht das vom hauptskript. also das relative hiervon: "W:\www\system\include" -> (__FILE__) seh ich den wald vor lauter bäumen nicht mehr?
      www.scriptforums.com - Foren für Skripts
      www.ragonvote.net - Kostenlose Umfragen
      www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

      Kommentar


      • #4
        ich brauch aber ziemlich genau "/system/include" und nicht das vom hauptskript.
        Klingt unlogisch, wenn man
        PHP-Code:
        include("include/inc.php"); 
        liest.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Mach einfach das hier (muss im includierten Script ausgeführt werden)

          PHP-Code:
          <?php
          echo "/".trim(str_replace(str_replace("\\""/"$_SERVER["DOCUMENT_ROOT"]), ''str_replace("\\""/"dirname(__FILE__))), "/");
          ?>
          sigpic

          Kommentar


          • #6
            Zitat von Frank Beitrag anzeigen
            Mach einfach das hier (muss im includierten Script ausgeführt werden)
            Tora tora tora! Perfekt!
            Genau sowas hab ich gesucht.
            Danke!
            www.scriptforums.com - Foren für Skripts
            www.ragonvote.net - Kostenlose Umfragen
            www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

            Kommentar


            • #7
              Was soll der Aufwand überhaupt?
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                falls du php 5.3 nutzt, seit 5.3 gibts __DIR__ als Ersatz für dirname(__FILE__)
                DevBlog|3D Online-Shopping|Xatrium

                Kommentar


                • #9
                  Zitat von nikosch Beitrag anzeigen
                  Was soll der Aufwand überhaupt?
                  ganz einfach:
                  ich weiss nicht wie tief in der verzeichnisstruktur ich mein include ablege. zudem müssen die HTML-Pfade am schluss stimmen. also bilder gefunden werden usw. und das alles ohne irgendwas zu fixieren.

                  PHP-Code:
                  include("include/inc.php");  
                  include(
                  "include/toll/super/inc.php"); 
                  Und das aufrufende skript soll nachtürlich auch "irgendwo" liegen können
                  also z.b. verschachtelte includes usw.

                  Ums etwas besser zu formulieren, ich weiss nicht (naja "fast" nicht) wo mein includefile im Bezug zum aufrufenden skript liegt. dadurch wird das ganze flexibler und unabhänginger.

                  __DIR__ kenn ich, läuft aber auf 5.2.3 mit der ich arbeite lokal noch nicht.
                  www.scriptforums.com - Foren für Skripts
                  www.ragonvote.net - Kostenlose Umfragen
                  www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

                  Kommentar


                  • #10
                    Zitat von advanced_phpler Beitrag anzeigen
                    ganz einfach:
                    ich weiss nicht wie tief in der verzeichnisstruktur ich mein include ablege. zudem müssen die HTML-Pfade am schluss stimmen. also bilder gefunden werden usw. und das alles ohne irgendwas zu fixieren.
                    [...]
                    Ums etwas besser zu formulieren, ich weiss nicht (naja "fast" nicht) wo mein includefile im Bezug zum aufrufenden skript liegt. dadurch wird das ganze flexibler und unabhänginger.
                    So ein rumgerate ist tödlich.
                    Du _weißt_ wie du deine Anwendung strukturierst also setze dir im Dispatcher deine Pfade entsprechend.
                    Sowas dann in jedem Include-Script rauszufummeln schreit nach Problemen, wenn man mal ein paar Wochen nichts an der Anwendung gemacht hat.

                    Im Übrigen sind absolute Pfade überaus hilfreich - sie vermeiden ungewollte Nebeneffekte, die bei relativen Angaben auftreten können.
                    VokeIT GmbH & Co. KG - VokeIT-oss @ github

                    Kommentar


                    • #11
                      Ganz meine Meinung!
                      Wenn Du ne vernünftige Struktut erstellst, kannst die ebenfalls überall ablegen und sie würde fehlerlos laufen...
                      So'n Kokolores tut nicht Not und ist imho Mumpitz!
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Zitat von G.Schuster Beitrag anzeigen
                        Im Übrigen sind absolute Pfade überaus hilfreich - sie vermeiden ungewollte Nebeneffekte, die bei relativen Angaben auftreten können.
                        naja ich arbeite generell nur relativ. Absolut gefällt mir absolut nicht.


                        dieser patch ist sehr hilfreich besonders da ich nie weiss aus welcher ebene mein include aufgerufen wird. Die pfade müssen aber am Ende stimmen.

                        Wo es selber liegt, das kann ich fixieren. am ende soll besonders dieses include so flexibel sein, das es ausser 1-2 übergebenen parametern keinen bezug zum gesamtsystem hat... und das hab ich nun erreicht
                        www.scriptforums.com - Foren für Skripts
                        www.ragonvote.net - Kostenlose Umfragen
                        www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

                        Kommentar


                        • #13
                          Und dadurch hast du nun bitte was gewonnen?
                          Ausser verbratener Energie (und Rechenzeit) absolut nichts.

                          Da du ja generell relativ arbeitest sag mir doch bitte aus dem Stegreif, zu welchem Verzeichnis ein "../../foobar/../../test/" relativ ist, wenn das im hundertsten verschachtelten Include auftaucht.

                          ...mit absoluten Pfaden wäre das nicht passiert...
                          VokeIT GmbH & Co. KG - VokeIT-oss @ github

                          Kommentar


                          • #14
                            Wird das jetzt nicht ein wenig zu speziell?
                            Bin der Meinung, wenn man ne vernünftige Struktur hat, braucht man höchstens ./, weil man bspw. alles über eine index steuern könnte.
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Zitat von G.Schuster Beitrag anzeigen
                              Und dadurch hast du nun bitte was gewonnen?
                              ...mit absoluten Pfaden wäre das nicht passiert...
                              Du sprichst das an, was man vermeiden sollte "../../../" also "vorwärts immer... rückwärts nimmer". kleiner scherz am rande.

                              - also möglichste nicht mehrere ebenen zurück gehen.
                              - möglichst flache struktur


                              system/index.php #inkl inc1
                              system/verz/inc1.php //inkludiert inc2
                              system/verz/verz/inc2.php /** hier sind wir **/

                              bauch ich:
                              system/functions/wow.php


                              lösung ist nun eben nicht ein:
                              "../../functions/wow.php" sondern ein "functions/wow.php"
                              (egal auf welcher ebene ich bin)

                              oder noch besser "wow.php" bereits beim "index.php" inkludieren. dadurch brauch ich in inc2.php keinen rückverweis.

                              Würde ich nicht verschatelt arbeiten (und alles via index.php steuern) müsste ich z.b. aus inc2.php alle funktionen pro skript laden usw.

                              da ich immer alles vom index.php aus betrachte und der rest verschachtelt ist.
                              lösen sich fast alle probleme von selber auf.

                              was wenn ich aber nun inc2.php
                              system/verz/verz/inc2.php /** hier sind wir **/
                              system/verz/verz/gfx/lady.jpg /** brauch ich **/


                              -> ergäbe ein ein "verz/verz/gfx/lady.jpg"
                              oder www.absolut.com/system/verz/verz/gfx/lady.jpg
                              igitt... wer sagt denn das ich jedesmal genau diese struktur habe?



                              ein beispiel für inc2.php
                              PHP-Code:
                              $urdir getcwd();              //aufrufend
                              chdir(dirname(__FILE__));    // zu mir wechseln 


                              // <<<--- hier der nomale skript teil z.b.
                              $bild file("gfx/lady.jpg")    //ohne variable, ohne verz/verz/


                              chdir($urdir);               // zurücksetzen
                              return $rueckgabe

                              "system" kann bei mir ohne anpassungen, liegen auf:
                              www.system.com/system
                              www.system.com/www/system
                              www.system.com/kunde1/www/system
                              localhost/system


                              -> je unabhängiger das include-file um so flexibler ist es.
                              ich hoffe es war einigermassen verständlich ...
                              www.scriptforums.com - Foren für Skripts
                              www.ragonvote.net - Kostenlose Umfragen
                              www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

                              Kommentar

                              Lädt...
                              X