2012-04-04 7 views
1

Ich habe ein PHP-Skript (index.php), das eine index.html-Datei in einem Unterverzeichnis (site1.com) enthält. Diese index.html-Datei zeigt Bilder an, die sich im selben Verzeichnis (site1.com) befinden.Include-Datei im Unterverzeichnis, das auf die Datei im selben Verzeichnis zugreift

Derzeit enthält die Datei index.php die Datei index.html. Der HTML-Code von index.html wird angezeigt, die Bilder jedoch nicht. Die Datei index.html sucht im ROOT-Verzeichnis nach den anzuzeigenden Bildern. Das ist das Problem. Ich möchte irgendwie alle Inhalte (??) des Verzeichnisses site1.com einschließen, nicht nur die einzelne Datei "index.html".

Ich habe versucht, das Arbeitsverzeichnis zu ändern, hatte aber keinen Erfolg. Vielleicht benutze ich es einfach nicht richtig ...

Aus Gründen, die ich lieber nicht erklären möchte, möchte ich keine Konfigurationseinstellungen in PHP oder Apache bearbeiten. Ich möchte auch nicht den Code von index.html ändern. Grundsätzlich muss ich eine Lösung finden, die zu 100% in PHP implementiert werden kann. Die URL muss so aussehen, als wäre der Benutzer immer noch im Stammverzeichnis (mysite.com), wenn in Wirklichkeit der Inhalt aus dem Unterverzeichnis (site1.com) angezeigt wird. Dies ist in gewisser Weise wie ein transparenter Proxy.

[FILE] index.php 
[DIR] site1.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 
[DIR] site2.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 

Ich habe viel suchen, aber habe keine funktionierende Lösung gefunden.

Antwort

1

Wenn Sie()/require() in eine Datei einfügen, ist es so, als ob der Inhalt dieser Datei buchstäblich in das Skript eingefügt und eingefügt würde. Wenn index.html Bilder im Verzeichnis site1.com verwendet, müssen Sie auf diese Bilder verweisen, indem Sie Pfade verwenden, die auf dem Speicherort von index.php basieren.

Der Remote-Benutzer kann nicht sagen, dass Sie eine Datei aus einem Unterverzeichnis auf Ihrer Website aufgenommen haben - sie werden nur einige html zurück vom Server kommen, also wenn Ihr index.html etwas wie

hat
<img src="img1.png" /> 

drin, aber das hTML aus dem index.php Skript angezeigt wird, dann wird der Browser werden soll suchen

http://example.com/img1.png 

nicht

http://example.com/site1.com/img1.png 

Es liegt an Ihnen, richtige Pfade auszugeben.

+0

Aber würde nicht das Arbeitsverzeichnis in den Ordner verschieben und DANN einschließlich der index.php Datei tun, was ich will? –

+0

Nr. Arbeitsverzeichnis ist ein rein serverseitiges Konzept und hat absolut keinen Einfluss darauf, wie der Client-Browser den HTML-Code interpretiert. Wenn Ihr Code '' ausgibt, wird der Browser versuchen, diesen zu laden, unabhängig von irgendwelchen Verzeichnismanipulationen, die Sie auf dem Server ausgeführt haben. –

+0

Könnte ich möglicherweise cURL (aus der Datei 'index.php' im Stammverzeichnis) verwenden, um eine Verbindung zu meinem Server herzustellen und die Datei index.html aus dem Unterverzeichnis 'site1.com' zu laden? Und DANN senden Sie den geladenen Inhalt zurück an den Client, so als ob der Inhalt aus dem Stammverzeichnis käme. –

Verwandte Themen