ホームページ >バックエンド開発 >PHPチュートリアル >PHP の解凍はまだ機能しません。 。解決策を模索する
PHPでは、圧縮されたパッケージがアップロードされ、解凍することができました。
さて、解凍中に名前を変更して別のディレクトリに置くにはどうすればよいですか?
アドバイスをお願いします。
プログラムを解凍します
$zip = zip_open("/php/test/test.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$fp = fopen("/ php/".zip_entry_name($zip_entry), 'w');
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
fwrite($fp,'$buf');
zip_entry_close($zip_entry);
zip_close($zip); ディレクトリの下に 1 つの関数を保存します。 。 。 。
zip_entry_name($zip_entry) はパッケージ内のファイル名を取得します
string 関数を使用して処理し、目的のファイル名を生成できます
「zip_entry_name($zip_entry)」をエコーして出てくるのは配列
関数ですzip_entry_name(&$res)
{
if(!$res) return false;
return $res['name'] }
再解決します。 。 。本当に無理なんです。 。 。
ディスカッションへの返信 (解決策)
コード内で $fp = fopen("/php/". zip_entry_name($zip_entry), 'w');
zip_entry_name($zip_entry) が返されるとはどう言えますか?配列? "O o o z z z z z
c
o o o o o o o o
”; & $res) {{
$res['名前'] を返す;
}
echo zip_entry_name($zip_entry); 何が出てくるでしょうか?
出ました、笑
別の問題があります。 。 。 substr を使用して名前を変更し、
1. 解凍したファイルを置くディレクトリはどこに設定すればよいですか?
2. 元のファイルを希望の名前に置き換える場所はどこですか?
アドバイスを求め続けてください。 。 。
コード内で
$fp = fopen("/php/". zip_entry_name($zip_entry), 'w');//これを必要なファイル名に変更します
if (zip_entry_open($zip, $zip_entry , " r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));//これはパッケージ内のファイルを読み取ります
解凍したファイルにはファイル名以外は何も残っていないことがわかりました。 。 。画像は表示されません。 。 。 。
私のecho $bufはWebページ上で20行の文字化けを表示することができます。 。サイズは適切なはずですが、fwrite に問題がありますか? 。それともエンコード形式でしょうか?
Linux でバイナリ モード
でファイルを開くには。