1

私は現在、MyClientBaseと呼ばれる請求書にオープンソースソリューションを使用しており、すべてが非常にうまく機能しています。

通常、クライアントへの請求書を生成するときは、PDFまたは電子メール(またはHTML)として生成できます。HTML請求書を生成するとき、そのリンクは安全です(ログインしているユーザーのみが請求書を表示できます)ので、電子メールで送信できるmd5-htmlを生成する公開請求書を作成しようとしています。

現在、適切なフォルダにmd5-htmlファイルを生成することで機能しており、htmlファイルが空であることを除いてすべてが素晴らしいです。フォルダでCHMODを777に設定し、いくつかの解決策を試しましたが、実際には何も機能しません。代わりに、同じページに2つの請求書(重複)を生成し、htmlファイルを空のままにします。ですから、熟練したphp/html-guyがこれを理解するかもしれないと思います。

現在使用しているコードは次のとおりです。

function generate_html() {

$invoice_id = uri_assoc('invoice_id');

$this->load->library('invoices/lib_output');

$this->load->model('invoices/mdl_invoice_history');

$this->mdl_invoice_history->save($invoice_id, $this->session->userdata('user_id'), $this->lang->line('generated_invoice_html'));

$this->lib_output->html($invoice_id, uri_assoc('invoice_template'));

 /*  ------------------ GENERATE MD5-HTML ---------------------------  */
     $file = md5('my_output_path'.$invoice_id).'.html';

     echo "<a href='my_output_path".$file."'>Link to client invoice</a>";
     $f = fopen('my_invoice_path'.$file, 'w');
     $template = $this->load->view('invoice_templates/default_template');
 fwrite($f, $template);true;    
     /*  ------------------ End generate md5 ---------------------------  */
     }

私が得ることができるどんな助けにも感謝します!

4

2 に答える 2

1

これを試してみてください。動作するはずです。出力をフェッチして変数に格納すると、この変数はそのファイルのコンテンツになります。エラーが発生した場合は、微調整が必​​要になる場合があります。

function generate_html() {

$invoice_id = uri_assoc('invoice_id');

$this->load->library('invoices/lib_output');

$this->load->model('invoices/mdl_invoice_history');

$this->mdl_invoice_history->save($invoice_id, $this->session->userdata('user_id'), $this->lang->line('generated_invoice_html'));

$this->lib_output->html($invoice_id, uri_assoc('invoice_template'));

 /*  ------------------ GENERATE MD5-HTML ---------------------------  */
     $file = md5('my_output_path'.$invoice_id).'.html';

     echo "<a href='my_output_path".$file."'>Link to client invoice</a>";
     $f = fopen('my_invoice_path'.$file, 'w');
     ob_start(); // start output buffer flow
     $old_content = ob_get_contents();
     ob_clean();
     $this->load->view('invoice_templates/default_template');
     $template = ob_get_contents(); // assign buffer contents to variable
     ob_end_clean(); // end buffer and remove buffer contents
     fwrite($f, $template);true;   
     echo $old_content;

     /*  ------------------ End generate md5 ---------------------------  */
     }
于 2012-04-17T10:38:26.170 に答える
1

「コメントの議論」の後、問題は請求書のHTMLを含まない$templateから発生します。

$ this-> load-> view('invoice_templates / default_template');の結果。HTMLは含まれていませんが、おそらくステータスコードのみが含まれています。

この方向で検索できると思います。

于 2012-04-17T10:39:06.673 に答える