Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Obsługa RAR
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, 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
 
Start new topic
Odpowiedzi (1 - 5)
legorek
post
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
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
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
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
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 Aktualny czas: 22.08.2025 - 04:31