Externe HTML met file_get_contents - FORM
Op die andere website staat een zoekformulier, ik ben enkel toegestaan de HTML op deze website aan te passen, niet de php.
Het werkt om het formulier met behulp van "file_get_contents" neer te zetten, enkel de functionaliteit werkt alleen extern, met behulp van $_POST.
De pagina los werkt echter wel.
Mijn vraag is dus, is het mogelijk dat het submitcommando wordt uitgevoerd op een externe server, en de htmlpagina die daarmee geschreven wordt weer terug te halen met file_get_contents.
Ik heb ook gedacht aan een simpele IFRAME met de losse pagina op de externe site (wat wel werkt), alleen met IFRAME loop ik tegen het simpele feit aan dat ik een scrollbar krijg wat niet echt mijn bedoeling is.
Hoop dat jullie mijn vraag begrijpen, maar ik kan altijd verdere uitleg verschaffen als men dat vraagt.
Vast bedankt :)
Jos
Gewijzigd op 08/11/2010 15:09:22 door Joshua W
Je kunt ook de scrollbar van de Iframe uitzetten maar of dat gewenst is weet ik niet.
Maar als je een iframe hebt met een scrollbar die uitstaat, mis je gewoon 90% van je zoekresultaten toch? Dan wordt je iframe niet net zo groot als de pagina in je frame, da's het probleem dan weer daarvan. Verder zal ik dan met CSS moeten rotzooien aangzien mijn CSS in mijn eigen site zit, als je IFRAMES gebruikt, wordt jouw css niet gebruikt in je iframe.
Ik ga even kijken naar cURL. In ieder geval bedankt!
Curl is hiervoor uitermate geschikt, CURL is niets meer dan een HTTP aanvraag. En hierbij kun je natuurlijk post en get meegeven. Dit resultaat sla je op en geef je dan weer in je veld.
http://www.sitemasters.be/tutorials/1/1/437/PHP/CURL_nader_verklaard
De belgen hebben me even geholpen :)!
Had eerder nog nooit gehoord van curl, maargoed, ooit moet je eerste keer zijn.
Geniaal!
Toevoeging op 08/11/2010 16:03:03:
Ho! Volgend probleem. Als ik nu mijn zoekresultaten weergeef zitten daar linkjes in, $_GET variabelen die opgehaald moeten worden op de externe site. Op al mijn gewone pagina's die ik met file_get_contents ophaalde, heb ik een str_replace gedaan en er mijn eigen $_GET variabele page voor geplakt, die file_get_contents na klikken weer netjes uitprint.
Kan ik op één of andere wijze ook een str_replace doen op mijn output van CURL of dat dan weer niet?
want ik begrijp niet helemaal wat je bedoeld
Teven moet je als ik het goed heb hetvolgende er nog boven zetten.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
#| Set cURL to return data.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
?>
#| Set cURL to return data.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
?>
Je moet dan wel echo $source doen om het resultaat weer te geven. Nadat je de gewenste dingen hebt aangepast natuurlijk.
Gewijzigd op 08/11/2010 16:17:09 door - Mark -
http://www.life4sun.nl/divsite/huuraanbodspanje.php
De content (lijst met huizen in dit geval) komt van een externe site. De linkjes met hun getvariabelen zijn normaal href="?key=...., maar omdat ik voor elke pagina die ik van hun site pluk een file_get_contents($_GET['page']) uitvoer, maak ik van elk linkje die ik ophaal href="?page=http://......?key=, zodat ik de juiste page ophaal met file_get_contents.
De zoekpagina: http://life4sun.nl/divsite/huuraanbodspanje.php?page=http%3A%2F%2Fwww.easymakelaar.eu%2Fhouses%2F%3Fkey%3Dlife4sun%26menu%3Dzoek%26language%3Dnl%26huko_a%3Dhuren
Als ik nu een execute uitvoer met curl, krijg ik precies de output van de site, met dezelfde linkjes als in de complete lijst die je hierboven kunt bekijken, maar het proces om de links naar eigen hand te zetten lukt mij nu niet omdat de output niet in een variable staat als pure HTML.
Toevoeging op 08/11/2010 16:20:47:
Mark Coenen op 08/11/2010 16:09:13:
Verander curl_exec($ch); eens naar $source = curl_exec($ch); De broncode van de website komt dan te staan in $source.
Teven moet je als ik het goed heb hetvolgende er nog boven zetten.
Je moet dan wel echo $source doen om het resultaat weer te geven. Nadat je de gewenste dingen hebt aangepast natuurlijk.
Teven moet je als ik het goed heb hetvolgende er nog boven zetten.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
#| Set cURL to return data.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
?>
#| Set cURL to return data.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
?>
Je moet dan wel echo $source doen om het resultaat weer te geven. Nadat je de gewenste dingen hebt aangepast natuurlijk.
Ik ga dit nog ff checken Mark, zag je berichtje te laat..
Toevoeging op 08/11/2010 16:54:34:
Ik heb het! Die curl_setopt moest er idd nog even boven, anders kan je de html niet saven in $source.
Ben ik weer een heel eind wijzer geworden vandaag.
Thx allemaal! Ik kan weer verder.
Joshua
Gewijzigd op 08/11/2010 16:22:08 door Joshua W