kostenloser Webspace werbefrei: lima-city


Pfade und include

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi, ich habe ein Problem mit Dateieinbindungen in einer Funktion und Aufrufen dieser aus verscheidenen Dateien in unterschiedlichen Pfadebenen.

    Hier mal die Struktur:

    index.php
    ordnerx/function.php
    ordnerx/data.xml
    ordnerx/datei.php
    ordnerx/ordnery/datei2.php

    im functions.php ist eine Funktion, die das xml im gleichen Ordner (ordnerx) ausliest und verarbeitet. Das Problem ist, dass der Pfad zu diesem xml (data.xml) jenachdem von wo die Datei function.php eingebunden wurde.

    (Spreche ich nachfolgend von Einbinden der Datei function.php, meine ich damit das einbinden der Datei function.php und anschließendem Aufruf der darin befindlichen Funktion)

    Die Datei function.php wird sowohl in index.php eingebunden
    <?php
    # 1)
    include('ordnerx/function.php');
    ?>

    als auch in der Datei ordnerx/datei.php
    <?php
    # 2)
    include('function.php');
    ?>

    und der Datei ordnerx/ordnery/datei2.php
    2)
    <?php
    # 3)
    include('../function.php');
    ?>


    Die Dateien ordnerx/datei.php und ordnerx/ordnery/datei2.php werden dabei per AJAX in die Datei index.php geladen.

    Das Problem ist, dass das xml in der function.php jeweils mit einer anderen Pfadangabe (nachfolgend: $path) aufgerufen werden müsste:
    #1) 
    $path = 'ordnerx/';
    
    #2) 
    $path = '';
    
    #3) 
    $path = '../';
    
    
    # all)
    $url = $path."data.xml";


    Ich suche nun eine Möglichkeit, die daei functions.php von allen Stellen aus einbinden zu können OHNE jeweils eine anderen $path zur data.xml zu benötigen.


    Ich hoffe jemand ennt sich damit aus und kann mir mit der Lösung behilflich sein ;)

    Vielen Dank & Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    wenn ich Dein Problem richtig verstanden habe, würde das inetwa so lösen...
    $root = $_SERVER['DOCUMENT_ROOT'];
    $url = $root . "ordnerx/data.xml";
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Alternativ könnstest du die Konstante
    __DIR__
    dafür nutzen
  5. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    hackyourlife schrieb:
    Alternativ könnstest du die Konstante
    __DIR__
    dafür nutzen?


    Etwas ähnliches hatte ich über pathinfo(__FILE__), aber ich bekomme aufm localhost (xampp) immer den Pfad aus dem Application Ordner heraus
    /Applications/XAMPP/xamppfiles/htdocs/meineSeite/ordnerx


    und wenn ich da jetzt anfange den Pfad zu zerstückeln (der ja auf einem Server nicht so aussehen würde) ist das etwas undurchsichtig...

    Oder gibt es ne Möglichkeit das ich nur den Pfad ausgehend von der index.php bekomme?

    @ staymyfriend

    staymyfriend schrieb:
    $root = $_SERVER['DOCUMENT_ROOT'];
    $url = $root . "ordnerx/data.xml";


    auch hier das ähnliche problem...

    Beitrag zuletzt geändert: 19.10.2013 20:42:40 von programtools
  6. Hallo,

    $root ist das Hauptverzeichnis Deiner Internetseite, sprich darin sollte sich auch die index.php befinden. "__FILE__" ist auch NICHT gleich "__DIR__"!!!
  7. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    staymyfriend schrieb:
    Hallo,

    $root ist das Hauptverzeichnis Deiner Internetseite, sprich darin sollte sich auch die index.php befinden. "__FILE__" ist auch NICHT gleich "__DIR__"!!!


    Danke erstmal für die Hilfe!

    Der Unterschied von __FILE__ und __DIR__ ist mit ja bewusst, es geht mir nur um das problem, dass ich immer einen Pfad aus dem Applications Ordner bekomme (weil xampp da liegt)

    $root = $_SERVER['DOCUMENT_ROOT'];
    $url = $root . "ordnerx/data.xml";
    
    echo $root;
    #Output:
    /Applications/XAMPP/xamppfiles/htdocs/


    Das Problem ist ja, dass ich alles nach dem htdocs brauche (wasdann über __FILE__ gegeben wäre) aber OHNE den Pfad vor, inkl. htdocs

    Liebe Grüße

    Beitrag zuletzt geändert: 19.10.2013 21:39:35 von programtools
  8. Hallo,

    damit wir uns richtig verstehen... deine Datei "data.xml" gibt es nur einmal und liegt immer in dem gleichen Verzeichnis, richtig? Warum suchst Du dann krampfhaft nach einer Lösung mit relativen Pfaden, wenn es mit einem absoluten Pfad wesentlich einfacher ist???

    Bau in Deine "function.php" folgendes zu Anfang ein:
    <?php
    define("XML_PATH", __DIR__);

    Zum Aufrufen der XML:
    $xml = XML_PATH . "data.xml";


    Beitrag zuletzt geändert: 19.10.2013 22:40:23 von staymyfriend
  9. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    staymyfriend schrieb:
    Hallo,

    damit wir uns richtig verstehen... deine Datei "data.xml" gibt es nur einmal und liegt immer in dem gleichen Verzeichnis, richtig? Warum suchst Du dann krampfhaft nach einer Lösung mit relativen Pfaden, wenn es mit einem absoluten Pfad wesentlich einfacher ist???

    Bau in Deine "function.php" folgendes zu Anfang ein:
    <?php
    define("XML_PATH", __DIR__);

    Zum Aufrufen der XML:
    $xml = XML_PATH . "data.xml";



    Öhm gute Frage.

    So funktionierts (allerdings muss nach dem Pfad und vor den dateiNamen noch ein Slash gesetzt werden).

    Allerdings dachte ich, es gibt Probleme, da der Pfad eben im Aplicationordner (meiner festplatte) startet und nicht ausgehend von localhost.

    :) vielen Dank und liebe Grüße
  10. programtools schrieb:
    ... Hier mal die Struktur:

    index.php
    ordnerx/function.php
    ordnerx/data.xml
    ordnerx/datei.php
    ordnerx/ordnery/datei2.php

    ... Die Datei function.php wird sowohl in index.php eingebunden
    <?php
    # 1)
    include('ordnerx/function.php');
    ?>

    als auch in der Datei ordnerx/datei.php
    <?php
    # 2)
    include('function.php');
    ?>

    und der Datei ordnerx/ordnery/datei2.php
    2)
    <?php
    # 3)
    include('../function.php');
    ?>
    ...
    in allen unter- und unter/unter-includeten dateien gilt der (rel.)path von index.php. daran liegt es ;)

    Beitrag zuletzt geändert: 23.10.2013 1:15:36 von czibere
  11. Probiers doch mal mit absoluten Pfaden?
    <?php
    include(/home/webpages/lima-city/benutzername/html/functions.php)
    ?>

    Wenn Ich es nämlich richtig verstanden habe funktioniert die Pfadangabe nicht...
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!