MartinM: Include Tag mit Referenz zum Root verzeichnis

Hallo,

folgendes Problem.
in meinem htdocs Verzeichnis befindet sich die Datei index.php

hier will ich die Datei meta.php includen

<? include ("inc/meta.php"); ?>

So funktioniert es

<? include ("/inc/meta.php"); ?>

So aber nicht. Wieso??? Es bezieht sich doch auf das HtDocs Verzeichnis. Ich brauche diese Art der Referenzierung unbedingt. Wisst ihr was ich falsch mache?

Der Fehler der Ausgegeben wird:

Warning: main(/inc/meta.php) [function.main]: failed to open stream: No such file or directory in C:\Apache2\htdocs\index.php on line 8

Warning: main() [function.include]: Failed opening '/inc/meta.php' for inclusion (include_path='.;C:\php5\pear') in C:\Apache2\htdocs\index.php on line 8

Gruß
Martin

  1. hi,

    hier will ich die Datei meta.php includen
    <? include ("inc/meta.php"); ?>
    So funktioniert es

    <? include ("/inc/meta.php"); ?>
    So aber nicht. Wieso??? Es bezieht sich doch auf das HtDocs Verzeichnis.

    nein, auf das wurzelverzeichnis des servers.

    Ich brauche diese Art der Referenzierung unbedingt. Wisst ihr was ich falsch mache?

    bastel dir den benötigten pfad beispielsweise über $_SERVER['DOCUMENT_ROOT'] plus pfadangabe relativ zu diesem zusammen.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Lieber Martin,

    das, was wahsaga vorschlägt, mache ich ähnlich. Dazu verwende ich allerdings $_SERVER['SCRIPT_NAME']. Diese Variable liefert mir den kompletten Pfad meines aktuell aufgerufenen Scriptes. Damit kann ich dann feststellen, in welchem Unterordner ich bin, um dann davon ausgehend "zurück" zu verlinken. Ein Beispiel:

    Meine Domäne heißt www.test.de
    Auf test.de liegen alle meine Scripte in einem Verzeichnis namens "scripte", unterteilt in ihre Bereiche ("scripte" hat also auch Unterverzeichnisse).
    Mit den Programmzeilen

    $rel_pfad = preg_replace("/[^/]/", "", substr(stristr($_SERVER['SCRIPT_NAME'], "scripte/"), strlen("scripte/"));
          $rel_pfad = preg_replace("///", "../", $rel_pfad)."besonderes/inc/";

    bekomme ich so immer den vom aufgerufenen Script aus relativen Pfad zum Verzeichnis "www.test.de/scripte/besonderes/inc/" in die Variable $rel_pfad. Damit kann ich jetzt includen:
     include $rel_pfad."meta.php";

    Hoffentlich konnte ich Dir weiterhelfen.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.