[PHP] fopen

  • Ersteller Ersteller SGD-Daniel
  • Erstellt am Erstellt am
S

SGD-Daniel

Gast
EDIT

Hallo,

und zwar baue ich gerade an einem dynamischen Menü. Durch eine "root"-Variable setze ich den Wert auf "/", so das die Verlinkung dort startet.

Situation:
Im dyn. Menü klicke ich auf "Tabelle", die auf die "tab.php" verweist. In der "tab.php" habe ich eine Tabelle mit 2 Zellen erstellt. In der linken Zelle hole ich mir per "include" das Menü. In der rechten Zelle soll dann die Tabelle erscheinen.

Problem:
Mit "fopen", "implode" usw. lese ich die Seite komplett ein, so dass die Hyperlinks nicht mehr funktionieren, weil die Seiten direkt auf meine Domain eingelesen werden. Die Hyperlinks sollen aber weiterhin funktionieren.

Weiß jemand Rat und kann mir helfen?
 
Zuletzt bearbeitet:
Für diese Variante fehlt ein fgets(), um den Inhalt aus der Datei auch auszulesen, nachdem du sie mit fopen() geöffnet hat. ;)

Ich glaube, du suchst

PHP:
$text = file_get_contents("...");
echo $text;
 
Ich habe gerade gemerkt, dass die Seiten richtig eingebunden werden. Das will ich gar nicht.

Ich benötige was, zum externen Verlinken bzw. einbinden. Weil sonst funktionieren die Links der externen Seite nicht mehr.
 
Zuletzt bearbeitet:
Wie jetzt ?

also folgende Befehle funzen auch mit remote-files

per file()
falls Du in einem array jede Zeile haben willst


oder per file_get_contents() falls Du die gesamte Datei in einem einzigen String haben willst.
 
Naja, ich wollte es eigentlich so, dass man, wenn man eine Datei einbindet, dass man deren Links weiter nutzen kann. Mit fopen, implode und euren Vorschlägen ist das alles nicht möglich.
 
Verstehe ehrlichgesagt immernoch nicht 100% pro was Du genau willst, bzw daran nicht funzt ?

Wenn das eine externe HTML-Datei ist, dann wird sie eingelesen.
Du müsstest dann die darin befindlichen Links aus den Tags extrahieren - zb. per explode() oder pregmatch
oder die Daten Deinen Wünshcen entsprechend aufbreiten und weiterverarbeiten oder die Seite 1:1 wieder ausgeben/ einbinden.

Oder willst Du alles inkl. Unterseiten einlesen?
Das ginge auch damit, aus einer Kombination Links extrahieren und Schleife.
 
Unterseiten wird nicht gehen, weil das wäre zu viel. Die befindlichen Links kann ich ebenfalls nicht ändern, weil das auch mind. 100 Stück wären.

Man könnte es aber so händeln, das man das über Frames macht. Links das Menü und rechts die externe Seite. Mit <a href=""></a> geht das in meiner Situation nicht, weil ich ein dynamisches Menü habe. Das ist halt das Problem!
 
Wenn Du ein dynamisches Menü hast ist das doch auch kein Prob, php ist auch dynamisch, sprich wird doch bei jedem Klick je nach übergebenen Parameter der Links in Deinem Menü entsprechend neu eingelesen.


Ich meine ob Frames oder php, Du musst es doch so oder so dynamisch einbinden.

Klar mit Frames gehts einfacher, weil Du dann nur die Seite der Linksammlung oder was auch immer verlinken brauchst. Sieht allerdings dann immer bisserl unprofessionell aus, kenne ja jetzt nicht Deinen Einsatzzweck.
Und geht auch nicht immer, weil manche Seiten genau dies verhindern, über js-"Framebrecher".

Aber Prinzipiell wären auch 100 Links extrahieren für php kein Problem.
Schau Dir mal preg_match_all an.

Ungefähre Vorgehensweise:
- per file_get_contents() Datei in Variable einlesen
- per preg_match_all alle Links/ URLs daraus in einem rutsch in ein array zurückgeben.
- dann die URLs aus diesem array in deine Seiten einbinden/ aufbereiten


Edit:
Achso und immer auch ein Auge auf die rechtliche Seite der Geschichte werfen.
Weiss ja jetzt nicht was das für eine Seite ist, die Du einbinden willst.
Weil Contentklau oder Fremdseiten ohne Genehmigung in Frames einbinden ist kein Kavaliersdelikt.

Nicht dass du mal irgendwelchen Ärger (Abmahnung) dadurch bekommst, denn ein guter Admin bekommt sowas mit und sieht auch ob per Browser oder per Server/ php abgeholt.
Es gibt zwar Möglichkeiten, dies zu erschweren, aber im Zweifel ist immer besser und sicherer vorher zu fragen. ;)
 
Zuletzt bearbeitet:
Dein "Edit" ist genau das Problem, warum ich das ganze nicht einfach so einlesen/einbinden kann.

Hatte es gerade mit Frames probiert, da funktioniert das auch, wenn man die Seiten mit <frameset> editiert, aber sieht natürlich blöd aus, wenn einiges mit und das andere mit frames ist und außerdem wäre das bei einer weiteren Verlinkung nur innerhalb des Frames möglich, was wiederum auch wieder nicht geht!
 
Zuletzt bearbeitet:
Zurück
Oben