Einbinden externer Seiten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anpassen
austauschen
beispiel
benutzen
bild
bleiben
code
dank
ersetzen
funktion
http
klappen
leute
machen
manual
problem
server
setzen
test
url
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Externe Seiten werden mit den Befehlen fopen oder fsockopen eingelesen. Siehe dafür das Manual. include und require sind dafür nicht geeignet, da diese Funktionen dafür meistens gesperrt sind oder es nicht richtig können.
-
Noch einfacher geht\'s mit: file_get_contents
Beispiel:
echo file_get_contents(\"http://www.lima-city.de\");
Siehe auch das PHP-Manual. -
Noch einfacher geht\'s mit: file_get_contents
Beispiel:
echo file_get_contents(\"http://www.lima-city.de\");
Siehe auch das PHP-Manual.
Hi, danke erstmal, das ist ansatzweise das,was ich gesucht habe. Jetzt habe ich das erfolgreich eingebunden. Allerdings werden die Bilder (ich hab als Beispiel Google eingebunden) nicht angezeigt. Was kann man da machen?
Yazurah -
Du musst die URL vor alle Bilder setzen. Die Links bei Google und vielen Seiten sind nur so angegeben-> src=\"bilder/bild.jpg\". Das musst du ändern auf \"http://google.de/bilder/bild.jpg\". Kannst einfach mit str_replace ersetzen.
AAArgh... Ne, da es ja immer unterschiedliche Seiten sind, die ich einbinde, wird das so nicht klappen. Da werde ich wohl bei iFrames bleiben müssen...
Trotdem Danke leute...
Yazurah -
Du musst die URL vor alle Bilder setzen. Die Links bei Google und vielen Seiten sind nur so angegeben-> src=\"bilder/bild.jpg\". Das musst du ändern auf \"http://google.de/bilder/bild.jpg\". Kannst einfach mit str_replace ersetzen.
AAArgh... Ne, da es ja immer unterschiedliche Seiten sind, die ich einbinde, wird das so nicht klappen. Da werde ich wohl bei iFrames bleiben müssen...
Trotdem Danke leute...
Yazurah
Wie wärs wenn du dir einfach schnell eine Funktion schreibst:
<?php function include_url($url) { $source = file_get_contents($url); $source = str_replace(\"href=\", \"href=\".$url, $source); $source = str_replace(\"href=\\\"\", \"href=\\\"\".$url, $source); $source = str_replace(\"href=\'\", \"href=\'\".$url, $source); $source = str_replace(\"src=\", \"src=\".$url, $source); $source = str_replace(\"src=\\\"\", \"src=\\\"\".$url, $source); $source = str_replace(\"src=\'\", \"src=\'\".$url, $source); echo $source; } ?>
Nicht getestet, berichtigt mich wenn ich mich irre...
Beitrag geändert: 19.3.2008 22:22:25 von pinguinfreund -
Doch das geht schon, auch relativ leicht. Speicher die URL von der Seite die du abrufst einfach in einer Variable und ersetz damit alle Bildlinks. str_replace(\'src=\"\', \'src=\".$url\', $seite); So in etwa müsste es gehen.
EDIT: Da war wohl einer schneller :P
Beitrag geändert: 19.3.2008 22:28:06 von chatter -
Was soll dein komischer Code? Der macht aus <img src=\"bild.jpg\"> <img http://www.google.desrc=\"bild.jpg\">;)
Edit: Hm, meiner will auch noch nicht xD der spuckt teilweise sowas aus:
<a href=http://www.google.de\"http://picasaweb.google.de/home?hl=de&tab=wq\">
Sind halt nicht alle Links relativ... mist
Beitrag geändert: 19.3.2008 22:28:35 von pinguinfreund -
lol; war ein kleiner Dreher drin, wird korrigiert ;)
-
Danke Leute, aber es werden unterschiedliche Seiten abgerufen und ich kann NIE die Funktionen so anpassen, dass sie die Links für alles Seiten ersetzen... Das geht nicht.
Ich muss iFrames benutzen...
Yazurah
Würde mit Regex gehen.
Ist aber ein bisschen kompliziert in der Einarbeitung. Evntl. Macht dir ja jemand einen entsprechenden ;) -
DOCH das geht! Es wird einfach nach src bzw. href gesucht und die links dahinter ausgetauscht. Das packt man in eine Funktion, und voilà.
<?php function include_url($url) { $source = file_get_contents($url); $source = str_replace(\'href=\"\', \"href=\\\"\".$url, $source); $source = str_replace(\"href=\'\", \"href=\'\".$url, $source); $source = str_replace(\'src=\"\', \"src=\\\"\".$url, $source); $source = str_replace(\"src=\'\", \"src=\'\".$url, $source); $source = str_replace(\'action=\"\', \"action=\\\"\".$url, $source); $source = str_replace(\"action=\'\", \"action=\'\".$url, $source); echo $source; } include_url(\"http://www.google.de\"); include_url(\"http://www.meinehp.de\"); ?>
Edit: Form-Actions müsste man auch noch austauschen :) Code editiert.
Beitrag geändert: 19.3.2008 22:41:55 von pinguinfreund -
Deine Funktion hat einen Fehler. Es wird keine $source der Funktion übergeben.
-
...und du hast wieder einen \"kleinen Dreher drin\", denn $source kommt von file_get_contents($url); ;)
Und wer immer noch nicht überzeugt ist, hier die \"Live-Demo\":
http://scrawl.bplaced.net/test.php
Die URL übergebt ihr über den GET-Parameter url, also beispielsweise http://scrawl.bplaced.net/test.php?url=http://www.google.de
Edit: Hm, bplaced blockt irgendwie file_get_contents, aber auf meinem Apache läufts.
Beitrag geändert: 19.3.2008 22:59:06 von pinguinfreund -
Lol, ich mag heute nicht mehr, zu durcheinander.
Aber versuch es doch mal hier auf dem Server, vielleicht geht es dort. -
Ah stimmt, daran hab ich nicht gedacht.
Funktioniert sogar, der Link: http://pinguinfreund.lima-city.de/test.php?url=http://www.google.de
Es gibt allerdings noch ein Problem, nämlich dass CSS-Stylesheets nicht geladen werden. Setz ich mich gleich dran.
Edit: Funktioniert doch, man muss nur hinter die Adresse einen Slash machen also
http://pinguinfreund.lima-city.de/test.php?url=http://www.google.de/
http://pinguinfreund.lima-city.de/test.php?url=http://www.lima-city.de/
usw.
Edit2: Ach ja, mit den absoluten Links ist auch noch ein Problem. Doch nicht so einfach wie es schien... Aber Moment, ich hab schon ne Idee.
Edit3: YES, es geht :D Code:
<?php function include_url($url) { $url = $url.\"/\"; $source = file_get_contents($url); $source = str_replace(\'href=\"\', \"href=\\\"\".$url, $source); $source = str_replace(\"href=\'\", \"href=\'\".$url, $source); $source = str_replace(\'src=\"\', \"src=\\\"\".$url, $source); $source = str_replace(\"src=\'\", \"src=\'\".$url, $source); $source = str_replace(\'action=\"\', \"action=\\\"\".$url, $source); $source = str_replace(\"action=\'\", \"action=\'\".$url, $source); $source = str_replace($url.\"http://\", \"http://\", $source); echo $source; } include_url($_GET[\'url\']); ?>
Beitrag geändert: 19.3.2008 23:23:04 von pinguinfreund -
naja.. so richtig funzt es aber auch noch nicht ;)
zB werden keine css datein übernommen..
http://pinguinfreund.lima-city.de/test.php?url=http://www.ravenc.de/
Achja.. und pass auf, dass man nicht Seiten includen kann, welche den Server angreifbar machen..
Hab es grad mal getestet.. noch kann man da keine solche seiten includen.. aber hübsch aufpassen ;) -
naja.. so richtig funzt es aber auch noch nicht ;)
zB werden keine css datein übernommen..
Guckste hier:
http://pinguinfreund.lima-city.de/test.php?url=http://www.amazon.de
http://pinguinfreund.lima-city.de/test.php?url=http://www.gimpusers.de
http://pinguinfreund.lima-city.de/test.php?url=http://www.lima-city.de
http://pinguinfreund.lima-city.de/test.php?url=http://www.google.de
Funktioniert alles, nur bei dir nicht, wegen deinen komischen Pfadangaben
Beitrag geändert: 20.3.2008 14:23:23 von pinguinfreund -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage