2011-10-21 3 views
0

디렉토리를 압축하는 데 몇 가지 문제가 있습니다. 다음 행은 트릭을 수행하지만 루트 디렉토리도 포함합니다. 어떻게이 문제를 해결하기 위해exec zip root path

exec('zip -r '.$tmp_zip.' '.$filename_no_ext.'/rss-ticker/*'); 

그래서 난 단지 디렉토리의 RSS 시세 모든 것을 압축하고 싶어?

당신의 도움에 감사드립니다.

답변

0

많은 고통과 두통을 겪고 싶지 않은 압도적 인 이유가 없다면, 실제로 ZipArchive 툴킷을 사용해야합니다. 방법의 예가 this question입니다. 당신은 확실히 거기에 $filename_no_ext 변수가 필요합니다

  1. :

    exec와 함께 작동하도록 우편을 얻기에, 나는 두 점을 발견했습니다. 방금 가지고 있다면 .이됩니다. 지금은 rss-ticker/으로 시작하기 때문에 폴더가 파일 시스템의 루트에 있다고 가정합니다. 네가 그렇게 생각하지 않는다.
  2. zip 명령 줄을 작동 시키려면 후행 *이 필요하지 않습니다.
1

어떤 우편 프로그램을 사용하고 있습니까? tar은 위의 방식대로 작동하므로 gzip이 될 수 있습니다.

또는 chdir()을 압축하려는 디렉토리에 지정하고 경로를 *으로 지정하십시오.이 경로는 현재 작업 디렉토리에서만 파일을 가져와야합니다.

ZIP Extension 또는 this 3rd party library을 원하는 방식으로 작동시키지 못한다면 순수 PHP로 사용하면 코드를 더 이식성있게 만들 수 있습니다.