PHP에서 압축 파일 (zip, rar, z7, gz 등)을 추출하고 싶습니다. 암호에는 ¡ ¿와 같은 특수 문자가 포함될 수 있기 때문에 PHP exec는 (어떤 이유로) 유니 코드 문자를 지원하지 않습니다. 나는 여기 php exec() in unicode mode?에 설명 된대로 배치 파일을 사용하여 eneded.Windows에서 명령 줄에 큰 따옴표로 암호 아카이브 압축
그러나, 10, 나는 암호와 같은 하나의 큰 따옴표가있는 아카이브를 추출하는 방법을 알아낼 수없는 것입니다 창처럼 아름다운 ...
에 기본 라인입니다"C:\Program Files\7-Zip\7z.exe" x "C:\Users\me\Desktop\25mb.rar" -o"C:\Users\me\Desktop\" -p"password here" -y
7zip을 사용하여 추출하십시오. 내가 25mb.bin이 암호 25mb.rar "(단일 따옴표)에 저장 test.rar에 저장된 파일을 (아래 참고)
를 오류는 다음과 같습니다.
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
Scanning the drive for archives:
1 file, 13312 bytes (13 KiB)
Extracting archive: C:\Users\me\Desktop\25mb.rar
--
Path = C:\Users\me\Desktop\25mb.rar
Type = Rar
Physical Size = 13312
Solid = -
Blocks = 1
Multivolume = -
Volumes = 1
ERROR: Data Error in encrypted file. Wrong password? : test.rar
Sub items Errors: 1
Archives with Errors: 1
Sub items Errors: 1
내가 시도 :
-p" *
-p"" **
-p""" *
-p"""" **
-p"^"" * (default escape for CMD)
-p"\"" *
* : 목을 e 줄은 덮어 쓰길 원하는지 묻습니다. 즉, -y가 실행되지 않지만 암호의 일부로 간주됩니다.
** : 실행 중이지만 오류가 있습니다. 추출 된 파일 test.rar이 (손상)
주를 열 수 없습니다 :이 방법으로 아무런 문제가 없습니다 ~`@ # $으로 %^&() _ + - = {} [] |! : ; ' <>,/€ ¡ ¿ *
참고 :?. WinRar를 사용하면, 암호가있는 파일을 제공 할 수있는 대신 문자열을 제공하는의, 추출하는 데 사용하는 깔끔한 기능이 있습니다. 그러나 이것은 RAR 파일 (!)에서만 작동하므로 내 상황에서는 쓸모가 없습니다. RAR와
예 :
file_put_contents('C:\Users\bunny\Desktop\pass.txt', $password);
exec('"C:\\Program Files\\WinRAR\\winrar" e -ad -p "C:\\Users\\me\\Desktop\\25mb.rar" *.* "C:\\Users\\me\\Desktop\" < "C:\\Usersme\\Desktop\\pass.txt"', $extractStatus);