Pfade und include
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absoluten pfad
aufrufen
bau
befinden
code
datei
einbinden
eingebunden code
funktion
gleichen verzeichnis
index
konstante code
nutzen
ordner
pfad
problem
relativen pfaden
richtig verstehen
struktur
url
-
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
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
wenn ich Dein Problem richtig verstanden habe, würde das inetwa so lösen...
$root = $_SERVER['DOCUMENT_ROOT']; $url = $root . "ordnerx/data.xml";
-
hackyourlife schrieb:
Alternativ könnstest du die Konstante
dafür nutzen?__DIR__
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 -
Hallo,
$root ist das Hauptverzeichnis Deiner Internetseite, sprich darin sollte sich auch die index.php befinden. "__FILE__" ist auch NICHT gleich "__DIR__"!!! -
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 -
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 -
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 -
programtools schrieb:
in allen unter- und unter/unter-includeten dateien gilt der (rel.)path von index.php. daran liegt es ;)
... 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'); ?>
Beitrag zuletzt geändert: 23.10.2013 1:15:36 von czibere -
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...
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage