Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Zapis plików?, Jaki sposób będzie szybszy i lepszy?
Babcia@Stefa
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Witam, który ze sposobów będzie szybszy?

1.

  1. <?php
  2. $fp = fopen('duzy_plik.rar', 'r');
  3.  
  4. while (!feof($fp))
  5. {
  6.    file_put_contents('duzy_plik_kopia.rar', fgets($fp, '2048'));    
  7. }
  8.  
  9. fclose($fp);
  10. ?>


czy

2.

  1. <?php
  2. $fp = fopen('duzy_plik.rar', 'r');
  3. while (!feof($fp))
  4. {
  5.    $i++;
  6.    $Data .= fgets($fp, '2048');
  7.    
  8.    if($i == 20)
  9.    {
  10.        file_put_contents('duzy_plik_kopia.rar', $Data);
  11.        $Data = NuLL;
  12.        $i = 0;
  13.    }
  14.    
  15.    
  16. }
  17.  
  18. if($i < 21 AND $Data != NuLL)
  19. {
  20.    file_put_contents('duzy_plik_kopia.rar', $Data);
  21. }
  22.  
  23. fclose($fp);
  24. ?>


Zależy mi aby zapisywać plik co jakiś czas, aby inny skrypt mógł monitorować postęp ściągania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (chodzi tu o system aktualizacji)

@edit
Kody nie były testowane, pisałem je "z palca" (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Pozdrawiam, WebNuLL.

Ten post edytował Babcia@Stefa 1.12.2008, 19:24:43
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Z tego, co pamiętam, to jeśłi to tylko możliwe, to należy korzystać z file_get_contents" title="Zobacz w manualu PHP" target="_manual/file_put_contents" title="Zobacz w manualu PHP" target="_manual, gdyż korzystają one z mapowania pamięci, w przeciwieństwie do zwykłych funkcji operujących na plikach.

Jednak miałem rację, w manualu nawet jest:
Cytat
file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.


edit: czytasz zawartość pliku, a otwierasz do zapisu. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <?php
  2. $fp = fopen('duzy_plik.rar', 'w');
  3. ?>
(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował erix 1.12.2008, 19:19:20
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Ups, zmieniłem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Dzięki, ale nie mogę użyć file_get_contents bo muszę sprawdzać ile pliku już zapisano (aby pokazywać % ukończenia).

@edit
Udało mi się zmierzyć czasy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

1. 22.5466649532

2. 22.4165239334

Nie wielka różnica, użyję jedynki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam, WebNuLL

Ten post edytował Babcia@Stefa 1.12.2008, 19:41:50
Go to the top of the page
+Quote Post

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: 23.08.2025 - 11:19