Avatar billede nightware Nybegynder
15. januar 2004 - 11:29 Der er 10 kommentarer

Læse jsp fil via webbet

Jeg har brug for at kunne læse info svarende til den som vises med "View Source" på denne web side

http://eqlive.station.sony.com/library/sz_yesterday.jsp

men jeg kan ikke finde ud af det... hjææælp

/Thomas
Avatar billede googolplex Novice
15. januar 2004 - 15:30 #1
Jeg forstår ikke helt hvad du mener, hvad er det præcis du vil ?
Avatar billede Slettet bruger
15. januar 2004 - 15:57 #2
Hvis fopen_wrappers er slået til kan du bruge en af følgende:

$streng=file_get_contents("adresse"); // kræver php>4.3.0

$array=file("adresse");
Avatar billede nightware Nybegynder
16. januar 2004 - 12:48 #3
Googolplex:
Jeg vil hente det der vises i browseren ind i en streng, så jeg kan parse det og arkivere det i en database...

Jeg vil alså "lege browser" og have adgang til det HTML der sendes tilbage via webbet når man surfer hen til siden på normal vis.

Sandbox:
Det du skriver virker hvis siden man giver en URL til almindelig html side, men ikke så godt med siden ovenfor. Virker det hos dig ?
Avatar billede nightware Nybegynder
16. januar 2004 - 13:28 #4
Her er lidt java kode der gør det jeg gerne vil have PHP til.

import java.io.*;
import java.net.*;
import java.util.*;

public class GetHtmlSource {

  public static void main(String[] str) throws Exception{
//    get("http://eqlive.station.sony.com/library/sz_yesterday.jsp");
    get(str[0],str[1]);
  }

  private static void get(String urlSt, String fn) throws Exception{
    URL url = new URL(urlSt);
    URLConnection urlC = url.openConnection();
    InputStream is=urlC.getInputStream();

    FileOutputStream fos=new FileOutputStream(fn); //"c:\\zzz.txt");
    while(true){
      int c=is.read();
      if (c<0) break;
      fos.write(c);

    }
    fos.close();
  }

}
Avatar billede Slettet bruger
16. januar 2004 - 16:15 #5
Siden er da en ganske almindelig HTML-side? Jeg forstår ikke problemet.

Hvad skal du egentlig bruge det til?
Avatar billede nightware Nybegynder
17. januar 2004 - 14:03 #6
Sandbox: Hvs jeg bruger de kald du foreslår, så virker det fint med en .htm side, men ikke med den jeg nævner.

jsp siden viser hvem der nakkede hvem i et spil dagen før. Jeg vil arkivere disse data, så jeg let kan se hvem der har besejret mig gennem tiden.
Avatar billede Slettet bruger
17. januar 2004 - 18:48 #7
Der er lige en ting, jeg vil præcisere: Det ER en html-side. At det på serveren i den anden ende er noget server-side kode, der laver siden er i princippet ligegyldigt. .jsp betyder (ligesom .php) bare at der er et program på serveren, der skal arbejde lidt for at sende data til brugeren, men lige som det ikke er en php-fil, du får, når du besøger en side med endelsen .php, er det heller ikke en jsp-fil du får, når du besøger en side med endelsen .jsp.

Nu har jeg selv prøvet, og så vidt jeg kan se, afbryder den anden ende, før den får sendt filen færdig.

Jeg vil tro, det er noget de har sat op for at forhindre leeching af siden.

Det samme sker, hvis jeg prøver med denne metode fra PHP-manualen:

$handle=fopen($adresse,'r');
$contents = "";
do {
  $data = fread($handle, 8192);
  if (strlen($data) == 0) {
      break;
  }
  $contents .= $data;
} while (true);
fclose($handle);

echo $contents;

Måske kan det lade sig gøre med en mere specialiseret klasse til PHP, der maskerer sig som en browser, men dem kender jeg ikke.
Avatar billede nightware Nybegynder
19. januar 2004 - 07:53 #8
Hmm, ja det er muligt, men jeg tror bare siden er langsom generelt. Måske timer php ud lidt for hurtigt.

Java koden virker helt fint.... hmmm
Avatar billede Slettet bruger
19. januar 2004 - 08:01 #9
Det er ikke bare en timeout, for så havde jeg fået en fejl i min test. Når jeg tester kode har jeg altid en error_reporting(E_ALL); med.

Eventuelt kan du sætte noget andet automatik til at hente siden 1 gang om dagen. Så skal php-scriptet bare åbne en lokal fil i stedet.
Avatar billede nightware Nybegynder
20. januar 2004 - 12:22 #10
Jap, det ender det jo nok med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester