この記事の例では、PHP オンライン パッケージ ダウンロード機能を実装する方法を説明します。ご参考までに、詳細は次のとおりです。
昨夜、私はこのパッケージ化とダウンロードを行うのにとても忙しかったです。問題はいくつかありますが、1 つ目は PHP_ZIP.dll の起動時の問題です。つまり、PHP.INI の extend_dir の前にある「;」記号を削除するだけです。 IIS または Apache を再起動するだけです。
問題は、システムに設定されている実際の PHP.INI が見つからないことです。
PHP 構成図
2 番目の図では、構成ドキュメントへのパスが示されています。クリックして見つけてください。頭がクラクラしてしまい、かなりの時間を無駄にしてしまいました。
PHP_ZIP 拡張ライブラリを開いたら、パッケージ化とダウンロードを開始できます。
$filename= date("YmdHis"); $zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释 $zip->open($filename.".zip", ZipArchive::OVERWRITE); //$data 就是从数据库里面读出的数字 foreach( $data as $val){ $attachfile = "E:\bysj\bysj".$val['fileaddr'].$val['filename']; //写硬路径,但建议用PHP环境变量 $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,是打包中文文档的关键 $zip->addFile( $attachfile , basename($attachfile)); //压栈 } $zip->close();//关闭 header("Content-type:text/html;charset=utf-8");//设置页面编号 header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.basename($filename)); //文件名 header("Content-Type: application/zip"); //zip格式的 header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件 header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小 @readfile($filename.".zip");
上記のコードは基本的にドキュメントのパッケージ化とダウンロードを実装でき、中国語のドキュメントをパッケージ化してダウンロードできないという問題も解決します。
この記事が PHP プログラミングのすべての人に役立つことを願っています。
PHP オンライン パッケージ ダウンロード関数の例に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。