PHPでパスワード付きのZIP / PDFファイルを作成する方法
2026/07/14
PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何らかの案件に実装する場合パスワード付きにしてほしいみたいな要望があるかもと思った。以下に対応方法のメモ。
TCPDFを用いる場合以下を記述する。
$tcpdf->SetProtection(array('print', 'copy', 'modify'), 'password');
引数の詳細はリファレンスを参照。
ZIP
<?php
chdir('/var/www/html');
exec("zip -e --password=xxxxxxxx ./test.zip ./test.txt");
chdirで移動せずに「/var/www/html/test.zip /var/www/html/text.txt」みたいに指定すると「/var/www/html/」のディレクトリ構造のまま圧縮されてしまうので注意。また、上記が正常に動作しない場合はディレクトリのパーミッションを確認すること。
所感
今回のは個人情報等を取り扱うシステムなんかで割と使えそう。
関連記事
-
-
FPDIで「This PDF document probably uses~~」エラーの対処方法
FPIDであるPDFを読み込ませようとすると「This PDF document ...
-
-
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...
-
-
PDFファイルを直接リンクさせずにPHP経由で表示もしくはダウンロードさせる方法
セキュリティ等の問題によりaタグで直接リンクさせたくない、もしくはドキュメントル ...
-
-
TCPDF&FPDIでテンプレートPDFを使用し、複数ページのPDFを作成する方法
TCPDF&FPDIを用いて請求書PDFを発行するシステムがあった。請求 ...
-
-
PHPでテンプレートPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)
以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的 ...