ホームページ  >  記事  >  バックエンド開発  >  HTML形式以外のファイルを出力するphpのまとめ

HTML形式以外のファイルを出力するphpのまとめ

WBOY
WBOYオリジナル
2016-07-25 09:05:311284ブラウズ
  1. $file = 'a.pdf';
  2. if (file_exists($file)) {
  3. header('Content-Description: ファイル転送');
  4. header('Content-Type : application/octet-stream');
  5. header('Content-Disposition:attachment; filename='.basename($file));
  6. header('Content-Transfer-Encoding: binary');
  7. header('Expires: 0');
  8. header('Cache-Control:must-revalidate、post-check=0、pre-check=0');
  9. header('Pragma: public');
  10. b_clean();
  11. flash();
  12. readfile($file);
  13. exit;
  14. }
  15. ?>
コードをコピー

2. 生成されたファイルを出力します (例: csv pdf など)。 場合によっては、システムは生成されたファイルを出力します。主に csv、pdf を生成するか、または zip 形式でダウンロードするために複数のファイルをパッケージ化します。この部分については、いくつかの実装方法は、生成されたファイルをファイルに出力し、ファイルを通じてダウンロードすることです。最後にファイルを生成するには、php://output を通じて生成されたファイルを直接出力します。以下では例として csv 出力を使用します。

  1. header('Content-Description: ファイル転送');
  2. header('Content-Type: application/octet-stream');
  3. header('Content-Disposition: 添付ファイル; ファイル名=a.csv');
  4. header('Content-Transfer-Encoding: binary');
  5. header('Expires: 0');
  6. header('Cache-Control: must-revalidate、post-check=0、pre -check=0');
  7. header('Pragma: public');
  8. ob_clean();
  9. flash();
  10. $rowarr=array(array('1','2','3'),array( '1','2','3'));
  11. $fp=fopen('php://output', 'w');
  12. foreach($rowarr as $row){
  13. fputcsv($fp, $ row);
  14. }
  15. fclose($fp);
  16. exit;
  17. ?>
コードをコピー

3. 生成されたファイルの内容を取得し、処理して出力します。 生成されたファイルのコンテンツを取得するには、通常、最初にファイルを生成し、次にそれを読み取り、最後にそれを削除します。実際には、以下では引き続き csv を使用します。例。

  1. header('Content-Description: ファイル転送');
  2. header('Content-Type: application/octet-stream');
  3. header('Content-Disposition: 添付ファイル; ファイル名=a.csv');
  4. header('Content-Transfer-Encoding: binary');
  5. header('Expires: 0');
  6. header('Cache-Control: must-revalidate、post-check=0、pre -check=0');
  7. header('Pragma: public');
  8. ob_clean();
  9. flash();
  10. $rowarr=array(array('1','2','中国語'),array( '1','2','3'));
  11. $fp=fopen('php://temp', 'r+');
  12. foreach($rowarr as $row){
  13. fputcsv($fp, $ row);
  14. }
  15. rewind($fp);
  16. $filecontent=stream_get_contents($fp);
  17. fclose($fp);
  18. // $filecontent コンテンツを処理します
  19. $filecontent=iconv('UTF-8','GBK ',$filecontent);
  20. echo $filecontent; //Output
  21. exit;
  22. ?>
コードをコピー

php の入出力ストリーム関数は、うまく使えばコーディングを簡素化できます。効率の向上に重点を置くことをお勧めします。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。