Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Obsługa RAR
Babcia@Stefa
post 14.07.2008, 10:12:52
Post #1





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

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


Witam, piszę aplikację w stylu total commandera tylko że w PHP.

Teraz integruję zip, rar i tar z normalnym listingiem folderów (jak zip w windowsie), i mam kilka problemów.

  1. <?php
  2. public function GetFile($Name)
  3. {
  4. $Entry = rar_entry_get($this->Rar, $Name);
  5. $Entry -> extract('../Data/Temp/$RAR$' .base64_encode($Name). '.tmp');
  6. $Contents = file_get_contents('../Data/Temp/$RAR$' .base64_encode($Name). '.tmp');
  7. return $Contents;
  8. }
  9. ?>


Ten kod mi nie działa.

File_get_contents" title="Zobacz w manualu PHP" target="_manual wywala błąd, bo plik tymczasowy nie został utworzony przez funkcję extract.

Klasy do obsługi RAR, ZIP, TAR tworze po to dlatego że nie muszę później jakiś switchów, ifów używać tylko nazwy funkcji są takie same, tak samo z obsługą folderów i plików nie skompresowanych smile.gif

Dziękuję, Babcia@Stefa


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
legorek
post 14.07.2008, 12:41:13
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Ponieważ, metoda extract jako pierwszy parametr przyjmuję nazwę katalogu do którego chcesz wypakować pliki, a ty podajesz nazwę pliku. Zobacz sobie:

  1. <?php
  2. $Entry -> extract('../Data/Temp/Rar');
  3. ?>



Jeśli chcesz wypakować dane do pojedynczego pliku zrób tak:


  1. <?php
  2. $Entry -> extract(false, '../Data/Temp/$RAR$' .base64_encode($Name). '.tmp');
  3. ?>


--------------------
Go to the top of the page
+Quote Post
Babcia@Stefa
post 14.07.2008, 13:29:33
Post #3





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

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


A więc rozwiązaniem nie było do końca to co powiedział legorek ponieważ RAR potrzebuje pełnej ścieżki do rozpakowania.

Zapamiętajcie że RAR POTRZEBUJE PEłNEJ ŚCIEŻKI DO ROZPAKOWANIA (TO PEWNIE CZĘSTY BŁĄD)

  1. <?php
  2. public function GetFile($Name)
  3. {
  4. // gets a resource
  5. $Entry = rar_entry_get($this->Rar, $Name);
  6. // get a path to script and change it
  7. $PathSave = str_ireplace('AjaxPages/RunFile.php', 'Data/Temp', $_SERVER['SCRIPT_FILENAME']);
  8. // extract and save result to $Test
  9. $Test = $Entry -> extract(false, $PathSave. '/$RAR$' .base64_encode($Name). '.tmp');
  10.  
  11. // check if $result is not false
  12. if($Test != false)
  13. $Contents = file_get_contents('../Data/Temp/$RAR$' .base64_encode($Name). '.tmp');
  14.  
  15. return $Contents;
  16. }
  17. ?>


Dziękuję, Babcia@Stefa

Ten post edytował Babcia@Stefa 14.07.2008, 13:30:37


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
dr_bonzo
post 14.07.2008, 14:20:02
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
A więc rozwiązaniem nie było do końca to co powiedział legorek ponieważ RAR potrzebuje pełnej ścieżki do rozpakowania.

Zapamiętajcie że RAR POTRZEBUJE PEłNEJ ŚCIEŻKI DO ROZPAKOWANIA (TO PEWNIE CZĘSTY BŁĄD)

Nie wymadrzaj sie tak, ok? Czestym bledem jest nie czytanie manuala i latanie z byle bledem na forum [tak jestem w k..urzony].


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Babcia@Stefa
post 14.07.2008, 15:13:11
Post #5





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

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


Cytat(dr_bonzo @ 14.07.2008, 13:20:02 ) *
Nie wymadrzaj sie tak, ok? Czestym bledem jest nie czytanie manuala i latanie z byle bledem na forum [tak jestem w k..urzony].



Co się tak czepiasz?
Niby skąd wiem o tych funkcjach jak nie z manuala?

Tylko wstawiam sensowną informację.
Może ktoś ma ten sam problem, lub będzie mieć wkrótce?


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
kwiateusz
post 14.07.2008, 15:31:07
Post #6


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




co nie zmienia faktu ze w manualu w przykladzie #2 jest użyta pełna sciezka więc dr_bonzo ma racje z niedokładnym czytaniem
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 Wersja Lo-Fi Aktualny czas: 25.06.2025 - 09:58