Externe website laden met div

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kilian S

Kilian S

27/05/2010 20:02:29
Quote Anchor link
Goedenavond,

Momenteel zijn wij bezig met een linkuit script.
Vroeger hadden wij dit in Iframes, maar we willen het graag mooier, dus in div's.

Er zijn in totaal 2 div's.
1 geeft aan dat je de website verlaat, de ander eronder geeft de website weer.
Voorbeeld: http://webcache.googleusercontent.com/search?q=cache:2Q4BoHdIon0J:www.google.nl/ig+google&cd=2&hl=nl&ct=clnk&gl=nl

We vroegen ons af hoe we dit voor elkaar konden krijgen.
De functie file_get_contents en include hebben wij al geprobeerd, maar werkte helaas niet.
File_get_contents werkt wel, alleen worden plaatjes niet geladen en werkt het script van bijvoorbeeld Google op deze manier niet.

Wij hopen dat jullie ons kunnen helpen.

Alvast bedankt!
Gewijzigd op 27/05/2010 20:04:38 door Kilian S
 
PHP hulp

PHP hulp

24/11/2024 15:05:22
 
Joren de Wit

Joren de Wit

27/05/2010 20:06:17
Quote Anchor link
De plaatjes werken waarschijnlijk niet omdat de paden niet meer kloppen. Als je de content met file_get_contents in een variabele laadt, zou je bij alle plaatjes (en css) de paden kunnen veranderen naar absolute paden die naar de betreffende website verwijzen. Dan wordt de pagina wel goed weergegeven.
 
Kilian S

Kilian S

27/05/2010 20:08:08
Quote Anchor link
Even ter voorbeeld, stel ik wil Google laden, hoe gaat dit dan in zijn werk?
Hoe moet ik de div/script opbouwen?
Gewijzigd op 27/05/2010 20:08:24 door Kilian S
 
Joren de Wit

Joren de Wit

27/05/2010 20:32:44
Quote Anchor link
Kort voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$content
= file_get_contents('http://www.google.nl');
$content = preg_replace('_\ssrc=([^>\s]+?)\s_is', 'src=http://www.google.nl/$1', $content);
echo $content;
?>


Dit werkt overigens nog niet helemaal, je zult nog moeten sleutelen aan de regex om de src attributen te matchen en te vervangen. Maar het maakt het idee wel duidelijk.
 
Pim -

Pim -

27/05/2010 21:17:33
Quote Anchor link
Ik denk dat het een stuk bugvrijer is als je eerst de dom parsed en dat van alle links de src'es aanpast.


Verder is dat ook handiger als je die custom div vooraan de body wilt stoppen.

Er is alleen 1 heel groot probleem: hoe ga je om met relatieve links?
 

27/05/2010 22:16:04
Quote Anchor link
Pim:
Ik denk dat het een stuk bugvrijer is als je eerst de dom parsed en dat van alle links de src'es aanpast.


Idd, die kan je in principe zo 'opvragen'.

Is dit allemaal wel toegestaan?
 
TJVB tvb

TJVB tvb

27/05/2010 22:22:19
Quote Anchor link
Als je toestemming hebt vraag dan of het ook in een op een makkelijkere manier aangeleverd kan worden.
Als je geen toestemming hebt: NIET DOEN!
 
Jelmer -

Jelmer -

27/05/2010 23:05:05
Quote Anchor link
Ik zou voor dit doel of de webpagina waar je naartoe gaat niet weergeven, en alleen een (grote) knop tonen om de website te verlaten en verder te gaan. Voorbeeld: deviantart.com. Enige reden daarvoor lijkt mij om phishing attacks tegen te gaan.

Of je toont de website wel in een iframe, maar dan is je waarschuwing net wat te laat (je laadt de externe pagina immers al in) en met een framebuster script kunnen sites je iframe-pagina overslaan.

Of je laadt de pagina in met file-get-contents, verandert alle verwijzingen naar scripts, plaatjes en links af, mist daarbij de verwijzingen vanuit de css en javascript waardoor het toch niet helemaal goed gaat. Grote kans dat de website die je op die manier inlaadt niet meer goed werkt. Daarnaast is het ook nog redelijk gevaarlijk, want je laadt hun website in, in jouw domein. Javascript op die pagina kan dus cookies van jouw site uitlezen, en andere leuke trucjes uithalen. En iemand kan voor de grap jouw file_get_contents pagina doorverwijzen naar een oneindig groot bestand, waardoor je script (hopelijk) voor 30 seconden vastloopt (of langer, als je je timeout niet hebt ingesteld)

De juiste oplossing hangt zoals altijd af van het doel. Waarom de link-uit pagina's?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.