Hej. Od dłuższego czasu zastanawiam się jak rozwiązać mój problem.
Mianowicie chcę podwójnie wyrenderować tę samą stronę za jednym razem.
Chciałbym:
- wczytać kod jakiejś zewnętrznej strony do zmiennej PHP,
- w odpowiednie miejsce wstawić pływającą ramkę iframe
- wyświetlić stronę (z dodatkową ramką zawierającą ją samą).
I niby już mam co chcę:
Przechwytywanie strony mogę streścić tak:
$html = file_get_contents($url);
$cutphrase = '</head';
$cutpos = strpos($html, $cutphrase);
$part1 = substr($html, 0, $cutpos);
$part2 = substr($html, $cutpos, strlen($html)-$cutpos);
$plug = file_get_contents('plug.php'); // Tutaj kod JavaScript wstawiający ramkę do której ponownie wczytuję $html - patrz niżej
echo $part1;
include 'plug.php';
echo $part2;
Wyświetlanie dodatkowej ramki:
var escapedhtml = '<?php echo json_encode($html); ?>';
$('<iframe id="layerFrame" width="500" height="500" />').load(function(){
$('#layerFrame').contents().find('body').append(escapedhtml);
}).prependTo('body');
Jednak to rozwiązanie często zawodzi. Z prostymi stronami sobie radzi. Niektóre jednak, nie wczytują poprawnie stylów (onet.pl) lub w ogóle nie wyświetlają ramki (wykop.pl)...
Stąd moje pytanie.
Jak myślicie - jak robią to np. Google Images:
http://images.google.com/imgres?imgurl=http://www.sztab.com/tapety/news-1290270980.jpg&imgrefurl=http://www.sztab.com/news,%2520Monty-Python-i-gra-na-Facebooku,5423.html&usg=__ynDMnsxhA4LRJTPm-agX2AouPhY=&h=344&w=500&sz=53&hl=pl&start=0&sig2=9mnbJ_ROb1OK3Xm-ImqIgA&zoom=1&tbnid=9ZBpWHlZ2xM_gM:&tbnh=155&tbnw=211&ei=DJX4TfeUGYndtAbv7ryACQ&prev=/images%3Fq%3Dmonty%2Bpython%26hl%3Dpl%26gbv%3D2%26biw%3D1680%26bih%3D878%26tbm%3Disch&itbs=1&iact=rc&dur=300&page=1&ndsp=30&ved=1t:429,r:0,s:0&tx=126&ty=89&biw=1680&bih=878
lub chociażby wykop.pl:
http://www.wykop.pl/ramka/778927/500-zl-mandatu-za-super-syrenke-na-starowce/
... poprawnie wyświetlają strony (pod swoim adresem), dodając do nich własne elementy...
Czy macie jakieś pomysły jak zrobić to sprawnie i efektywnie?
Z góry dzięki za pomoc
Marcin