2017-01-05 2 views
0

mpdfを使ってpdfを生成するための変数にHTMLコンテンツを入れる必要があります.htmlコンテンツをPHP関数の変数に割り当てる方法はありますか?PHP関数の間にhtmlコンテンツを入れる

これは私が試していることです。私は必要なもの

 function getInvoice($conn,$uid,$id,$invoice_no) 
     { 



     echo "something"; 


     ob_start(); 
     ?> 
    $content='<html> 

    <body style="padding-top: 0px"> 
    <page> 
    my html content     
    </page><body><?php echo "something"?;></body><html>' 



    <?php 


    $content .= ob_get_clean(); 
    } 

    ?> 

は、HTML内のすべてのコンテンツは、$ content変数に代入してしまうことがあります。 PHPの実行機能のため動作しません。

+1

を下回っています。変数の中でPHPタグを削除し、連結を使用します。 – Naga

答えて

0

このようにしてください。出力バッファを使用して

function getInvoice($conn,$uid,$id,$invoice_no) 
{  
    echo $something = "something"; 

    ob_start(); 

    $content='<html>  
    <body style="padding-top: 0px"> 
    <page> 
    my html content     
    </page><body>'.$something.'</body><html>';  

    $content .= ob_get_clean(); 
    } 

?> 
0

ob_start後とob_get_clean前にstdoutに送信されたデータのみを収集します。 php変数$contentsをhtmlに設定しようとしているようにコードが壊れていたので、それを収集します

$contents .= ob_get_clean();を実行したときの結果がこの値に設定されていました。この値は、htmlとしてmPDFに渡されてからpdfファイルを作成していました。以下は有効なhtmlではありません。

$content='<html> 
<body style="padding-top: 0px"> 
<page> 
my html content     
</page><body>something</body><html>' 

さらに、.-を使用すると、2つの文字列を一緒に追加することです。 $contentに有効なHTMLが含まれているようにしたいので、これはうんざりしていました。

以下の修正により、(有効なhtml)のコンテンツが$contentに収集されることが保証されます。

function getInvoice($conn,$uid,$id,$invoice_no) { 
    ob_start(); 
$content='<html> 
<head> 
<link rel="stylesheet" href="//classes.gymate.co.in/assets/bower_components/uikit/css/uikit.almost-flat.min.css" media="all"> 
<link rel="stylesheet" href="../assets/css/main.min.css" media="all"> 
<style>body{font-family:\'roboto\'; .md-card {box-shadow: none; } .uk-width-small-3-5 {width: 40%;}</style> 
</head> 
<body style="padding-top: 0px"> 
<page> 
my html content     
</page><body>' . "something" . '</body><html>'; 

    echo $content; 

    $content = ob_get_clean(); 

    include("../plugins/mpdf/mpdf.php"); 
    $mpdf=new mPDF('utf-8', 'A4','','',10,10,5,5,5,5); 
    $mpdf->SetFont('roboto'); 
    $mpdf->SetHTMLFooter('<p style="padding-top: 18px; font-size: 12px;"></p><p style="text-align:right; font-size: 12px;">Page {PAGENO} of {nbpg}</p></p>'); 
    //$stylesheet = file_get_contents('../assets/css/main.min.css'); 
    $mpdf->WriteHTML($stylesheet,1); 
    $mpdf->writeHTML($content); 
    $mpdf->Output("pdf-save-data/reciept.pdf","F"); 

    echo "PDF File Created"; 
} 
0
<?php 
function getInvoice($conn,$uid,$id,$invoice_no) { 
    echo $something = "something"; 
    ob_start(); 
    $content='<html><body style="padding-top: 0px"><page>my html content</page><body>'.$something.'</body><html>'; 
    $content .= ob_get_clean(); 
} 
?> 

ちょうどあなたがあなたの単一および二重引用符が正しく閉じられていることを確認してください。

注:私は、個人的には、変数にアサインするときに、HTMLで改行を与えないことを好みます。

0

これを実現するには<<<htmlhtmlを使用できます。例は、$ content変数の前と後に、すべてのPHPの開始タグと終了タグを削除

enter image description here

+0

コードの画像ではなく、実際のコードを掲載してください。 –

+0

実際に私は試しました。しかし、私はしたいと思うようにフォーマットすることができませんでした。ちょうど理解のためにイメージを貼り付けました。 – siddiq

+0

コードを投稿しようとしましたが、フォーマットできませんでしたか?誰もここでコードの書式設定に問題がありません。 –

関連する問題