2011-08-10 14 views
1

私は適切に動作するためには設定を必要とするWordPressテーマに取り組んでいます。phpを使用してzipファイル内のファイルを開いて編集することは可能ですか?

私が構成と言うとき、私はconfig.phpを少し編集する必要があることを意味します(いくつかの変数の値を設定する)。

これで、zipファイルに入り、完全な一時的な複製を作成することが可能かどうか疑問に思っていました(特定のユーザーのために、おそらくセッションIDを使用していますか?)、そして複製のconfig.phpファイルをいくつかの変数の値を設定します。その後、一時的なzipファイルを閉じて、ユーザーのためにダウンロード可能なファイルにリンクをエコーし​​ます。

設定される変数の値は、ユーザーがテーマをダウンロードする私のサイトのフォームからのものです。

これは単なる希望的な考えですか、それともチャンスがありますか?

ありがとうございます!

+0

http://stackoverflow.com/search?q=zip+phpにアクセスしてください。質問を更新した後、依然として不明な点を指摘してください。あなたの質問に対する答えは:はい、可能です。 – Gordon

答えて

2

ファイルを抽出して変更し、アーカイブに再度追加することができます(ZipArchiveクラスがインストールされていると仮定します)。

<?php 
    $zip = new ZipArchive; 
    $res = $zip->open('yourarchive.zip'); 
    if ($res === TRUE) { 
     $zip->extractTo('/my/destination/dir/', 'config.php'); 

     // do your edits to the file 

     $zip->addFile('config.php'); 
     $zip->close(); 
    } 
?> 
1

これは完全にZipArchiveクラスを使用して可能です。 Zipアーカイブを開いて、作成し、展開して保存します。

1

確かに可能です。

しかし、あなたが望むことをするいくつかのPHPコードを書く必要があります。あなたがここにジップ機能のためのドキュメントを見つけることができphp.netサイト上

http://php.net/manual/en/book.zip.php

Imはあなたのための任意のコードを記述するつもりはないが、あなたはundegoに必要な手順は以下の通りです:

1. copy zip file to temp area 
2. open temp zip file 
3. extract file from zip to temp area 
4. delete file from temp zip 
5. do changes to file in temp area 
6. add temp file to zip 
7. close zip file 
8. stream zip file to client 
9. delete temp files. 
+0

ねえ!すばらしい答えに感謝します。あなたは、どこにあなたが一時領域にコピーzipファイルを言ったか知っています...私はそれが一時的に行く前に、コピーされたzipファイルの名前を変更することができますか?私は重複の大きな問題に終わる可能性があるので。多分ランダムに生成された数に名前を変更してください。ありがとう! –

+0

おそらくこれを使うべきです:http://php.net/manual/en/function.tmpfile.php – netbrain

関連する問題