[php] fopen + javascript geeft probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Thyzz
  • Registratie: September 2001
  • Laatst online: 15-09 09:57

Thyzz

-=leeg=-

Topicstarter
Ik probeer het weer te parsen vanaf de knmi site.
Echter er staat een stukje javascript in wat er voor zorgt dat de pagina geredirect wordt naar zichzelf alleen dan in het orginele frame.

Door dit stukje code:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- cloaking
function framecheck() {
    var us = 1;
    var thisframe="";
    if (self.name != "knmi-weer-main") us = 0;
    if (us == 0) {
        thisurl = this.location.href;
        thisindex = thisurl.lastIndexOf ("/")+1;
        thisframe = thisurl.substring(thisindex,thisurl.length);
        top.location.href = '/voorl/weer/reindex.html?'+thisframe;}
    }
// decloaking -->

</script>

Om de informatie te krijgen gebruik ik deze code
PHP:
1
2
3
4
5
6
7
8
9
10
11
$file="http://www.knmi.nl/voorl/weer/aktueel.html";
fetchPage($file);

[..]
function fetchPage($file) {
        $fp = fopen ($file,"r");
        $a = fread($fp,999999);
        fclose($fp);
        echo $a;
        
}


Ik heb al verschillende dingen geprobeerd.
• Zoals hierboven direct weergeven,
• Meteen wegschrijven naar een bestand (niet weergeven)
• Meteen de gewenste info parsen

Maar het heeft allemaal geen effect Zodra de pagina een deel geladen is springt hij weg. (Voor dat de informatie komt die ik wil hebben :'(

Heeft iemand een hint hoe ik dat stukje javascript kan omzijlen zodat ik de informatie wel kan krijgen?

5325wp


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Maak een iframe met de naam "knmi-weer-main" en laad daar die pagina in.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 14:27
uhhrr.. voer een string replace uit op $a waardoor "<!-- cloaking [..] // decloaking --> wodrt vervangen door <!-- *dag javascript* -->. Of beter nog een regex die dat stuk code eruit vist voor je het weergeeft....

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

gewoon alles tussen <script en </script> weglaten :P

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Thyzz
  • Registratie: September 2001
  • Laatst online: 15-09 09:57

Thyzz

-=leeg=-

Topicstarter
T-MOB schreef op 24 april 2004 @ 00:31:
uhhrr.. voer een string replace uit op $a waardoor "<!-- cloaking [..] // decloaking --> wodrt vervangen door <!-- *dag javascript* -->. Of beter nog een regex die dat stuk code eruit vist voor je het weergeeft....
okee dit werkt gedeeltelijk,

als ik nu $a echo dan kan ik zien dat die script er niet meer in staat. echter, nog steeds wordt maar een klein deel van de pagina weergeven

zie test

Hij komt tot rotterdam, maar ik wil vlissingen :S

5325wp


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-09 18:51
Wat is nu precies de bedoeling? Je zegt dat je het bestand wil inlezen en parsen maar je hebt problemen met het weergeven ervan. Als je de informatie eruit wil halen is 't vast niet de bedoeling om de pagina letterlijk weer te geven.

Overigens is jouw implementatie van fetchPage bijna equivalent aan readfile (behalve dat readfile geen beperking oplegt aan de grootte van de pagina), dus die kun je wel afschaffen (maar daar ging het waarschijnlijk niet om).

edit:
Ik begrijp je probleem nu iets beter. Het lastige is dat fread alleen garandeerd een maximum aantal bytes te lezen. Je krijgt via TCP steeds pakketjes van een paar kilobyte binnen. Na de eerste paar kilobyte is er even geen data beschikbaar en retourneert fread met wat 'ie tot nu toe gelezen heeft.

Als je gewoon zonder problemen het hele bestand wil inlezen, kun je het beste file_get_contents gebruiken.

[ Voor 33% gewijzigd door Soultaker op 24-04-2004 01:02 ]


Acties:
  • 0 Henk 'm!

  • Thyzz
  • Registratie: September 2001
  • Laatst online: 15-09 09:57

Thyzz

-=leeg=-

Topicstarter
Thnx soultaker. die "file_get_contents" gaf idd de oplossing.
Ik kan nu idd alle informatie binnen halen.

5325wp

Pagina: 1