Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Kopiowanie zawartości strony i zapisywanie jej do pliku
puz219
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

czy jest taka możliwość, żeby skopiować zawartość strony i zapisać ją do pliku.

Nie chodzi o kopiowanie kodu strony, tylko, żeby zrobić, tak, żebym wpisywał w okno formularza link do strony, a odpowiedni skrypt php, żeby zapisywał zawartość strony (tak jakbym zaznaczył myszką wszystko, skopiował i wkleił do notatnika) do pliku.

Czy taka operacja jest możliwa, jeśli tak, to byłbym wdzięczny, gdyby ktoś mi napisał jakiej funkcji muszę użyć, żeby osiągnąć taki efekt.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
drPayton
post
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


curl
I zerknij na: Example 418. Using PHP's cURL module to fetch the example.com homepage
Go to the top of the page
+Quote Post
puz219
post
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Czy tą funkcję muszę jakoś zdefiniować albo coś w tym stylu, bo chciałem zobaczyć jak ona działa i jak skopiowałem kod z manuala

  1. <?php
  2. $ch = curl_init();
  3. $fp = fopen(&#092;"example_homepage.txt\", \"w\");
  4.  
  5. curl_setopt($ch, CURLOPT_URL, &#092;"http://www.google.pl/\");
  6. curl_setopt($ch, CURLOPT_FILE, $fp);
  7. curl_setopt($ch, CURLOPT_HEADER, 0);
  8.  
  9. curl_exec($ch);
  10. curl_close($ch);
  11. fclose($fp);
  12. ?>

,to wyświetla mi coś takiego
Fatal error: Call to undefined function curl_init() in C:\AppServ\www\FILMY-PuZ\zapisz.php on line 3

Co z tym zrobić.

Ten post edytował puz219 8.09.2007, 17:24:40
Go to the top of the page
+Quote Post
jaypablo
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.08.2007

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


przerób może mój skrypt

http://forum.php.pl/php_curl_i_pobranie_za...niu_t76816.html

zobacz jeszcze to

  1. <?php
  2. $ip = $_SERVER["REMOTE_ADDR"];
  3.  
  4. function GetPage($url, $ip, $timeout = 5) 
  5. {
  6. $result = '';
  7. $url = parse_url($url);
  8.  
  9. if(!isset($url['port'])) $url['port'] = 80;
  10. $port = $url['port'];
  11. if(strlen($url['path']) == 0) $url['path'] = '/';
  12.  
  13. if ($fp = @fsockopen($url['host'], $port, $errno, $errstr, $timeout)) 
  14. {
  15. fputs($fp, 
  16. "GET " . $url['path'] . " HTTP/1.0r\n" .
  17. "Host: " . $url['host'] . ($port != 80 ? ':' . $port : '') . "r\n" .
  18. "Accept: text/html; */*r\n" .
  19. "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)r\n" .
  20. "X_Forwarded_For: " . $ip . "r\n" .
  21. "Via: " . $ip . "r\n" .
  22. "Client-IP: " . $ip . "r\n" .
  23. "Connection: closer\nr\nr\n");
  24.  
  25. while (!feof($fp) && ($buf = fread($fp, 8192))) $result .= $buf;
  26.  
  27. fclose($fp); 
  28. return $result;
  29. } else
  30. echo "Błąd $errno: $errstr !";
  31.  
  32. return false; 
  33. }
  34.  
  35.  
  36.  
  37. $zzz = GetPage('http://forum.php.pl', '83.9.251.98');
  38. $plik=fopen("tp.txt", "w+");
  39. fwrite($plik, $zzz);
  40. fclose($plik);
  41. ?>


Ten post edytował jaypablo 8.09.2007, 17:41:28
Go to the top of the page
+Quote Post
puz219
post
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


@jaypablo nie wiem za bardzo o co ci chodzi.

Mnie się wydaje, że nie mam zainstalowanego tego cURL (chyba, że wchodzi w skład PHP).

Korzystam z AppServ. czy cURL jest już domyślnie zainstalowany z php, czy muszę go instalować osobno.

Pobrałem jakąś paczkę ze strony curl.haxx.se/ lecz nie wiem jak to zainstalować. Proszę o jakieś rady
Go to the top of the page
+Quote Post
drPayton
post
Post #6





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


W php.ini odkomentuj linię:
extension=php_curl.dll
(rozszerzenie musi być dostępne, więc jeśli nie korzystasz z domyślnego katalogu rozszerzeń, przekopiuj ten plik do Windows/System32
Tam też przekopiuj pliki: libeay32.dll oraz ssleay32.dll
Zrestartuj serwer i będzie działać :]
Go to the top of the page
+Quote Post
puz219
post
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


@drPayton dzięki za pomoc, wszystko działa tak jak należy.

Tylko teraz pytanie, czy da się zrobić tak, żeby do pliku zapisywało tylko informacje ze strony, bo teraz zapisuje tak, jak bym kliknął pokaż źródło strony, potem skopiował wszystko i wkleił do notatnika, a ja chciałem, żeby zapisywało tylko informacje ze strony (żeby rezyltat był dokładnie taki sam, jak gdybym otworzył stronę, zaznaczył wszystko, skopiował i wkleił do notatnika. ).

Czy to jest możliwe do zrobienia, a jeśli tak, to czy musze jeszcze jakoś skonfigurować ten skrypt curl? będę wdzięczny za odpowiedź.
Go to the top of the page
+Quote Post
drPayton
post
Post #8





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Nie wydaje mi się to możliwe.
Flaga CURLOPT_FILE jedynie przekierowuje wyjście z ekranu do pliku. Pamiętaj, że to co widzisz w przeglądarce to efekt jej działania nad kodem, który za pomocą curl'a przechwytujesz (czyli "źródłem strony").
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: 20.08.2025 - 18:47