Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ściągnięcie strony
-Gość_Pawel-
post
Post #1





Goście







Cześć,
Jestem bardzo początkuj acy wi ec nie przeraźcie się tym pytaniem

Potrzebuje napisać krótki programik

Programik ten będzie raz na dobę ściągał określoną stronę z internetu
i zapisywał ją na dysku a potem obrabiał
lub
ściągał obrabiał i zapisywał wynik do pliku

Teraz mam pytania
1. jak sprawić aby programik php uruchamiał się np raz dziennie o którejś godzinie ?
2. Jak ściągnąć automatycznie stronę przy pomocy php i zapisać na dysku?
3. Może jest jakies rozwiązanie aby ściągnąc ją do pamięci i obrabiać plik w pamięci a następnie zapisać wynik do pliku ?


Paweł
Go to the top of the page
+Quote Post
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


1. Szukaj -> CRON
2. fopen" title="Zobacz w manualu php" target="_manual
3. JW


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
hwao
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Co do odpalania co jakis czas.
Jest z tym roblem, mianowicie mozna to rozwiazac na pare sposobow - to zalezy co sie ma. Najprosciej jest poprostu kazac php odpalac sie co iles tam czasu przy pomocy cron (linux), lub wywolywac zdalnie request (jezeli mamy jakiegos kompa co dziala w godzianch co powinno to sie wykonywac.
Jezeli ta strona jest wlaczana (uds publice) to mozna poprostu sprawdzac kiedy byly pobrane ostanie dane i jak wiecej niz godzine temu to je ladujemy

Pobranie zawartosci strony.
Rozumie ze chodzi o sam text (bez grafiki i reszty bajerow). W takim razie najlepiej to roziwazac fsockopen" title="Zobacz w manualu php" target="_manual a nie jak napisal poprzednik fopen (bardzo czesto to jest nie dozwolone, poniewaz jak sa poczatkujacy programisi moze to prowadzic do powaznych dziur w bezpieczenstwie). Dlatego polecam wyzej wspomniana funckje:
  1. <?php
  2.  function fetchURL( $url ) {
  3.  $url_parsed = parse_url($url);
  4.  $host = $url_parsed["host"];
  5.  $port = $url_parsed["port"];
  6.  if ($port==0)
  7.  $port = 80;
  8.  $path = $url_parsed["path"];
  9.  
  10.  //if url is http://example.com without final "/"
  11.  //I was getting a 400 error
  12.  if (empty($path))
  13.  $path="/";
  14.  
  15.  //redirection if url is in wrong format
  16.  if (empty($host)):
  17.  $host="www.somesite.com";
  18.  $path="/404.shtml";
  19.  endif;
  20.  
  21.  if ($url_parsed["query"] != "")
  22.  $path .= "?".$url_parsed["query"];
  23.  $out = "GET $path HTTP/1.0rnHost: $hostrnrn";
  24.  $fp = fsockopen($host, $port, $errno, $errstr, 30);
  25.  fwrite($fp, $out);
  26.  $body = false;
  27.  while (!feof($fp)) {
  28.  echo fgets($fp, 128);
  29.  }
  30.  fclose($fp);
  31.  return $in;
  32. }
  33.  
  34. $source = fetchURL( 'http://jakas.strona.pl/index.php?cos=2' );
  35. ?>

Teraz w zmiennej source mamy caly text strony, co z nim zrobisz (zapiszesz, czy bedziesz szukal danych) zalezy tylko i wylacznie od Ciebie.

Jezeli chcesz wybrac fragment jakis najlepiej jest uzyc wyrazen regularnych, chyba ze dokument ma budowe xml'a (wtedy jak pracujesz na php5 masz standartowo biblioteke do radzenia sobie wlasnie z tym formatem, jezeli to jest php4 mozesz poszukac gotowych rozwiazan sa takowe napisane).
Go to the top of the page
+Quote Post
-Gość_Pawel-
post
Post #4





Goście







wyprobowalem ta funkcje

  1. <?php
  2.  
  3. $source = fetchURL( 'http://www.onet.pl');
  4.  
  5. $plik=fopen("plik.txt", "w");
  6. fputs($plik, $source);
  7. fclose($plik);
  8.  
  9. ?>


poprawiam
---
nospor



Zrobiłem taki programik i probowalem na kilku różnych adresach
ale plik po jego wywołaniu jest pusty( mimo że się tworzy)

tak jakby zmienna $source była pusta

na czym może polegac problem moze funkcja nie dziala ?


Pawel
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 02:53