skillup

技術ブログ

PHP

PHPのPDF出力に関するエラー

投稿日:

PHPからFPDFなどを使ってPDFを出力するプログラムを書いたんですが、下記のエラーでかなり悩まされました。

FPDF error: Some data has already been output, can’t send PDF file (output started at /var/www/html/jobrepo/vendor/cakephp/cakephp/src/Error/Debugger.php:754)

読んで字のごとくPDFを出力する前になんらかのデータが出力されているとこのエラーが出てしまいます。

まず対応策としてはPDFを出力する直前に  ob_end_clean();を書いて出力をいったんクリアにします。

基本的にはこれで解決するはずなんですが、ライブラリの中のエラーでどうしても消えない・・・仕方ないので自分はCakePHPを使っているので設定ファイルapp.phpの部分で下記のようにして逃げました。

http://kaze.blog.eonet.jp/default/2010/04/phppdf-27b8.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10101019570
http://qiita.com/ran/items/ac2dcefcbe89a2ee564a (←CakePHP&TCPDFを使ってPDFダウンロード)

 

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Laraevelのミドルウェアについて

以前からLaravel(ララベル)を使っていてわかりにくかったミドルウェアについてめも。 Laravelは一般的にはMVCフレームワークと言われていますが、コントローラーがリクエストを受け取り、何らか …

no image

PHPのオートローディング

大規模開発では扱うファイルが増えるため、必要なクラスの読み込みが煩雑になるケースが多いです。 Contents1 従来のPHPのファイルのロード2 オートローディングとは3 サンプルソース4 メモ5 …

no image

Cakeの共通処理

CakePHPだけに限りませんが、フレームワークの場合、オブジェクト指向の特徴を理解して、全ページに共通な処理などは個々のコントローラーに書くのではなく、もっと抽象度の高いクラスに書いたほうが保守性が …

no image

phing

今までphpunit,phpmd,phpcodesniffer,phpdocumentなどのツールをいろいろと試してきますが、個別に動かしていると大変面倒ですので、これを一気に行えるライブラリがありま …

no image

nginxをいれているサーバーでのPHP停止

ちょっとトラブル対応的なネタです。 先日、PHPで書かれているシステムが突然使用できなくなるという連絡があるお客様からありました。 原因としてはカゴヤのサーバー再起動により、php-fpmが起動してい …