7

まず、質問が他のスタック サイトに対するものである場合、この質問を投稿するのに正しい stackExchange サイトがどれかわかりません。私の質問を削除してください。

ここで質問について話しましょう:この状況は、次の場所にあるファイルを持っていることです:のすべてのファイルとサブ/home/user/public_html/folder-one/folder-two/folder-three/file.phpフォルダーを含むフォルダーのアーカイブを作成する必要があります。システム関数 (exec()、shell_exec()、または system()) を使用してアーカイブを作成すると、完全に機能します。私のコードは次のとおりです。/folder-one/folder-one

<?php
$output = 'zip -rq my-zip.zip /home/user/public_html/folder-one -x missthis/\*';
shell_exec($output);
?>

しかし、アーカイブをダウンロードして開くと、アーカイブにはサブフォルダーが含まれ/homeます。/user; /public_htmlしかし、このフォルダーはまったく不要であり、それらなしで zip を作成する方法を知りたいです。

このようなものを試してみると$output = 'zip -rq my-zip.zip ../../../folder-one -x missthis/\*';、(Windows 7ベースのOSで)アーカイブを開くと、フォルダー1の名前は../folder-one

追記: Windows ベースのホスティング プランで make zip を修正してくれると助かります。$output

敬具、ジョージ!

4

2 に答える 2

13

デフォルトでは、zip は現在のディレクトリからの絶対パスを保存します。したがって、実行cdするpublic_html前に次のようにする必要がありzipます。

$output = 'cd /home/user/public_html; zip -rq my-zip.zip folder-one -x missthis/\*';
shell_exec($output);
于 2012-07-03T20:08:45.520 に答える