[問題] 請問php如何壓縮檔案成rar以及如何解壓縮rar檔?

看板PHP作者 (香蕉共和國)時間10年前 (2015/05/07 15:08), 10年前編輯推噓5(5020)
留言25則, 7人參與, 最新討論串1/1
PHP如何解壓縮rar檔及壓縮檔案成rar檔? 我找了一下網路,有看到PECL的rar package可 以用,不過不曉得為什麼就是起不了作用。請問PECL的rar package是不是還要另外再裝才 能使用? 如何判斷我的主機(apache)是否已經裝了PECL的rar package呢? 如果沒有,那該 怎麼裝呢? (因為我是找網上的虛擬主機,所以不曉得該怎麼裝,是不是還要通知管理員叫 他幫我安裝呢?) 如果找到php rar的解壓縮及壓縮程式的話,可以盡量把整個程式碼都貼上來,並做解說, 謝謝各位! 另外還有RarArchive,那是什麼? 需要再另外安裝什麼嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.80.132.28 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1430982486.A.54D.html ※ 編輯: banana2014 (219.80.132.28), 05/07/2015 15:32:54

05/07 15:42, , 1F
我會比較建議你用外部指令做 :D
05/07 15:42, 1F

05/07 15:43, , 2F
直接上傳 binary ,權限改一下 +x 直接呼叫
05/07 15:43, 2F

05/07 15:43, , 3F
rar、zip都有 static 版本,ok的
05/07 15:43, 3F

05/07 17:23, , 4F
請問外部指令… 怎麼做? 我是租虛擬主機的…
05/07 17:23, 4F
<?php echo system("rar a test.rar data"); //將data資料夾壓縮成test.rar,但沒反應 echo system("rar e k.rar"); //將k.rar解壓縮,這行依舊沒反應 ?> 我照你的方法用外部指令去做,但是都沒反應耶,是不是哪裡出錯了? 或是還要必須再安裝什麼呢? 謝謝指教! ※ 編輯: banana2014 (219.80.129.121), 05/07/2015 17:58:50

05/07 18:18, , 5F
(1)查你的主機有沒有開system()或exec()
05/07 18:18, 5F

05/07 18:19, , 6F
(2)確定rar在哪裡 養成使用完整路徑習慣
05/07 18:19, 6F

05/07 18:45, , 7F
(1)怎麼查?
05/07 18:45, 7F

05/07 18:46, , 8F
(2)已經確定rar放在哪裡了,也寫了完整的路徑了,但依
05/07 18:46, 8F

05/07 18:47, , 9F
舊無反應...
05/07 18:47, 9F

05/07 19:16, , 10F
之前有包過zip,rar倒是沒包過
05/07 19:16, 10F

05/07 20:00, , 11F
問你的主機公司啊 怎麼查咧
05/07 20:00, 11F

05/07 21:43, , 12F
撈LOG出來看最準咧
05/07 21:43, 12F

05/07 22:10, , 13F
我想你是用網頁去跑的對吧?
05/07 22:10, 13F

05/07 22:11, , 14F
請建一個777的目錄,把rar檔往那個空間擺
05/07 22:11, 14F

05/07 22:11, , 15F
例: mkdir("tmp",0777);
05/07 22:11, 15F

05/07 22:12, , 16F
絕對路徑/rar ??? tmp/test.rar data
05/07 22:12, 16F

05/07 22:12, , 17F
你的 rar 檔,也要設 chmod +x 才行
05/07 22:12, 17F

05/07 22:16, , 18F
跑外部指令的話, echo `.../rar a.rar data`;
05/07 22:16, 18F

05/07 22:17, , 19F
通常我會下 `cd xxxxx && ./rar ?? tmp/a.rar data`;
05/07 22:17, 19F

05/07 23:17, , 20F
2年前做過zip解壓縮的 java applet的zip 解壓縮後產生ht
05/07 23:17, 20F

05/07 23:17, , 21F
ml檔展示applet
05/07 23:17, 21F

05/08 10:34, , 22F
呼叫java好像也是一個方法 前提是有system/exec好用
05/08 10:34, 22F

05/09 01:38, , 23F
記得對command line 做跳脫
05/09 01:38, 23F

05/09 01:38, , 24F
指令
05/09 01:38, 24F

05/09 01:38, , 25F
不然會被injection 系統很容易出事
05/09 01:38, 25F
文章代碼(AID): #1LImzMLD (PHP)
文章代碼(AID): #1LImzMLD (PHP)