kostenloser Webspace werbefrei: lima-city


Einbinden externer Seiten

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    Hi,

    wie kann ich externe URLs mit PHP einbinden? include und require funktionieren nicht, da es auf den meisten Server abgeschaltet ist. Gibt es noch andere Möglichkeiten? Ich möchte keine Frames verwenden!

    Danke!

    Yazurah
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. p***********d

    Noch einfacher geht\'s mit: file_get_contents
    Beispiel:
    echo file_get_contents(\"http://www.lima-city.de\");

    Siehe auch das PHP-Manual.
  5. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    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
  6. 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.
  7. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    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
  8. p***********d



    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
  9. 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
  10. p***********d

    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 :biggrin:

    Beitrag geändert: 19.3.2008 22:28:35 von pinguinfreund
  11. lol; war ein kleiner Dreher drin, wird korrigiert ;)
  12. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    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

  13. 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 ;)
  14. p***********d

    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
  15. Deine Funktion hat einen Fehler. Es wird keine $source der Funktion übergeben.
  16. p***********d

    ...und du hast wieder einen \"kleinen Dreher drin\", denn $source kommt von file_get_contents($url); ;)
    :blah:

    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
  17. Lol, ich mag heute nicht mehr, zu durcheinander.:eek:

    Aber versuch es doch mal hier auf dem Server, vielleicht geht es dort.
  18. p***********d

    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
  19. 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 ;)
  20. p***********d


    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 :blah:

    Beitrag geändert: 20.3.2008 14:23:23 von pinguinfreund
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!