Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kopiowanie pliku generowanego w php "w locie"
maniutek08
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 1
Dołączył: 23.08.2009

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


Witam

mam problem ze skopiowaniem pliku xml, który jest generowany "na żądanie" wielkość ok 17MB. Robię to standardowo przez polecenie copy(), i niestety wynik jest losowy : raz się uda skopiować a raz wywala błąd :
  1. [function.copy]: failed to open stream: HTTP request failed! in



Zrobiłem sobie raport - tak to się przedstawia w ciągu dwóch godziny - skrypt wywoływany co 5 minut :
  1. 2015-06-16 14:48:50 - HTTP Filed!
  2. 2015-06-16 14:50:52 - OK!
  3. 2015-06-16 14:55:01 - HTTP Filed!
  4. 2015-06-16 15:00:01 - HTTP Filed!
  5. 2015-06-16 15:05:01 - HTTP Filed!
  6. 2015-06-16 15:10:01 - HTTP Filed!
  7. 2015-06-16 15:15:02 - HTTP Filed!
  8. 2015-06-16 15:20:01 - OK!
  9. 2015-06-16 15:25:01 - HTTP Filed!
  10. 2015-06-16 15:30:01 - OK!
  11. 2015-06-16 15:35:01 - OK!
  12. 2015-06-16 15:40:01 - HTTP Filed!
  13. 2015-06-16 15:45:01 - HTTP Filed!
  14. 2015-06-16 15:50:01 - HTTP Filed!
  15. 2015-06-16 15:55:01 - OK!
  16. 2015-06-16 16:00:01 - OK!
  17. 2015-06-16 16:05:01 - OK!
  18. 2015-06-16 16:10:01 - HTTP Filed!
  19. 2015-06-16 16:15:02 - OK!
  20. 2015-06-16 16:20:01 - HTTP Filed!
  21. 2015-06-16 16:25:01 - HTTP Filed!
  22. 2015-06-16 16:30:01 - OK!
  23. 2015-06-16 16:35:01 - OK!
  24. 2015-06-16 16:40:01 - HTTP Filed!
  25. 2015-06-16 16:45:01 - OK!
  26. 2015-06-16 16:50:01 - OK!
  27. 2015-06-16 16:55:01 - OK!
  28. 2015-06-16 17:00:02 - HTTP Filed!


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maniutek08
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 1
Dołączył: 23.08.2009

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


znalazłem sobie taką funkcyjkę :

  1. function getUrlContents($url)
  2. {
  3. $url_parsed = parse_url($url);
  4.  
  5. $host = $url_parsed["host"];
  6. if ($url == '' || $host == '') {
  7. return false;
  8. }
  9. $port = 80;
  10. $path = (empty($url_parsed["path"]) ? '/' : $url_parsed["path"]);
  11. $path.= (!empty($url_parsed["query"]) ? '?'.$url_parsed["query"] : '');
  12. $out = "GET $path HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
  13. $fp = fsockopen($host, $port, $errno, $errstr, 30);
  14. fwrite($fp, $out);
  15. $headers = '';
  16. $content = '';
  17. $buf = '';
  18. $isBody = false;
  19. while (!feof($fp) and !$isBody) {
  20. $buf = fgets($fp, 1024);
  21. if ($buf == "\r\n" ) {$isBody = true;}
  22. else{$headers .= $buf;}
  23. }
  24. $file1 = fopen(basename($url_parsed["path"]), 'w');
  25. $bytes=stream_copy_to_stream($fp,$file1);
  26. fclose($fp);
  27. return $bytes;
  28. }


póki co raport jesk OK! :

  1. 2015-06-16 22:15:01 - OK!
  2. 2015-06-16 22:20:02 - OK!
  3. 2015-06-16 22:25:01 - OK!
  4. 2015-06-16 22:30:01 - OK!
  5. 2015-06-16 22:35:02 - OK!
  6. 2015-06-16 22:40:01 - OK!
  7. 2015-06-16 22:45:01 - OK!
  8. 2015-06-16 22:50:01 - OK!


hm.. w czym ona jest lepsza od copy() czy file_get_contents?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 22:20