kaiserbraten: include & bearbeitungsverzeichnis

Nabend ihr Nachtschwärmer,
ich bastle grade etwas an einer Seite und ich hab nen Problem, eine wirkliche Lösung konnte ich im Forum nicht wirklich finden.

Also mein Problem sieht folgendermaßen aus:

ich möchte eine php Datei in einem tieferem Verzeichnis aufrufen (mit include) also von /home beispielsweise in /home/test/.
Das funktioniert eigentlich auch ganz gut, nur die includete Datei beinhaltet Grafiken, die im selben Verzeichnis liegen, wie die Datei selbst.
Nach dem includen wird aber im /home statt im  /home/test/ Verzeichnis nach der Grafik gesucht.

Nun suche ich Hilfe bei diesem (wahrscheinlich banalen) Problem.

__
code
datei im /home verzeichnis:

include "test/index.php";

datei im home/test/ verzeichnis (index.php)

<img src="test.gif">
__
gewünschtes Ergebnis wäre dann im Endeffekt ein Verweis wie:
<img src="test/test.gif">

Ich hoff ihr versteht was ich meine :)

danke schonmal
gruß kaiserbraten

  1. Hallo,

    datei im /home verzeichnis:

    include "test/index.php";

    datei im home/test/ verzeichnis (index.php)

    <img src="test.gif">
    __
    gewünschtes Ergebnis wäre dann im Endeffekt ein Verweis wie:
    <img src="test/test.gif">

    ich bin mir ehrlich gesagt nicht sicher, ob ich Dich verstehe, wenn jedoch ja: Warum versuchst Du es nicht einfach mit

    <img src="test/test.gif">

    in der Include-Datei, wenn das da auch stehen soll?

    Ciao
    Liza

    1. ich bin mir ehrlich gesagt nicht sicher, ob ich Dich verstehe, wenn jedoch ja: Warum versuchst Du es nicht einfach mit

      <img src="test/test.gif">

      Ich stimme dir zu das würde eigentlich gehen, und das Problem wäre gelöst. Jedoch habe ich mein Problem stark vereinfacht, ich muss die Grafiken so ansprechen, da sich eventuell Pfade ändern und ich dann jedes Bild und jeden Link von Hand nachkorrigieren müsste. (Auf test2/test.gif als bsp.)
      Ich bräuchte nur ein include, dass den Pfad berücksichtigt, aus dem er die Datei holt und auch genau diesen Pfad für alle in diesem Dokument enthaltenen Links etc benutzt.

      danke schonmal
      kaiserbraten

      1. Moin

        Ich bräuchte nur ein include, dass den Pfad berücksichtigt, aus dem er die Datei holt und auch genau diesen Pfad für alle in diesem Dokument enthaltenen Links etc benutzt.

        Was spricht gegen eine Pfad-Variable?

        --
        Gruesse
        Wilhelm
        http://www.pictum.de
  2. Moin!

    ich möchte eine php Datei in einem tieferem Verzeichnis aufrufen (mit include) also von /home beispielsweise in /home/test/.
    Das funktioniert eigentlich auch ganz gut, nur die includete Datei beinhaltet Grafiken, die im selben Verzeichnis liegen, wie die Datei selbst.
    Nach dem includen wird aber im /home statt im  /home/test/ Verzeichnis nach der Grafik gesucht.

    Du vermischst hier zwei Pfadangaben-Typen, die nicht vermischt werden sollten.

    1. Die Pfadangabe im Include bezieht sich auf das Server-Dateisystem.
    2. Die Pfadangabe für die Bilder beziehen sich auf die URL, unter der die Bilder abgerufen werden können. Diese URL ist nicht zwingend identisch mit dem Dateisystem, auch wenn es oftmals die einfachste Lösung ist.

    Dein Problem besteht mit den URLs der Bilder. Du mußt dafür sorgen, dass die URL-Angaben in der eingebundenen Datei immer korrekt sind, unabhängig vom Einbindeort. Und das geht nur, indem du absolute Pfadnamen verwendest.

    Also <img src="/test/test.gif"> anstatt <img src="test.gif">.

    Damit weist du den Browser an, das Bild zu laden, welche sich, ausgehend vom Web-Hauptverzeichnis, in /test/test.gif befindet.

    - Sven Rautenberg

    --
    Signatur oder nicht Signatur - das ist hier die Frage!
    1. Huch ich habe dein Posting ganz übersehen; aber ich bin eigentlich darauf angewiesen, die Bilder so zu verlinken, da es im Betrieb Änderungen in den Pfadnamen geben kann und sonst die Bilder nicht gefunden werden können. Bei einer Lösung mit absoluten Pfaden müsste ich dann theoretisch jedesmal die Pfade von Hand ändern und das würde ich halt liebend gerne umgehen.
      Gibt es für solch eine Situation denn kein work-around ?

      gruss
      kaiserbraten

      1. Moin!

        Huch ich habe dein Posting ganz übersehen; aber ich bin eigentlich darauf angewiesen, die Bilder so zu verlinken, da es im Betrieb Änderungen in den Pfadnamen geben kann und sonst die Bilder nicht gefunden werden können. Bei einer Lösung mit absoluten Pfaden müsste ich dann theoretisch jedesmal die Pfade von Hand ändern und das würde ich halt liebend gerne umgehen.
        Gibt es für solch eine Situation denn kein work-around ?

        Irgendwas mußt du immer ändern. Wenn du es gerne automatisch hättest, mußt du dir eine Funktion schreiben, die das regelt. Oder du legst die Verzeichnis-Struktur in einer zentralen Konfigurationsdatei ab und bindest die dort definierten Variablen (oder Konstanten) dann in allen Ausgaben ein:

        $testverz = "/test";
        $bildverz = "/img";
        ... (und so weiter)

        Und im Code dann:

        <img src="<?php echo $testverz; ?>/test.gif">

        Ist aufwendig, aber machbar. Du mußt _jetzt_ alles ändern, aber später nur einmal zentral.

        Im übrigen kannst du die URL-Pfade grundsätzlich von den realen Dateisystem-Pfaden komplett trennen. Es gibt mod_rewrite, damit werden URLs in echte Pfade umgeschrieben. Ist allerdings nicht trivial mit umzugehen, sondern erfordert eine gewisse Einarbeitung. Und es muß  natürlich auch auf dem Server vorhanden sein. Dann kannst du aber einmal die Pfade komplett selbst wählen, und die URLs könnten sich ändern, oder du wählst einmal fest die URLs, und die Pfade dahinter ändern sich (wenn es denn sein muß).

        Am besten ist natürlich, wenn sich die Pfade nicht ändern. Macht am wenigsten Probleme, und ich habe auch noch keine Situation erlebt, bei der man seine eigenen Pfade nicht irgendwie durchsetzen konnte. ;)

        - Sven Rautenberg

        --
        Signatur oder nicht Signatur - das ist hier die Frage!