размещение html-содержимого между php-функцией

Мне нужно поместить некоторое содержимое html в переменную для генерации pdf, используя mpdf, есть ли способ назначить html-содержимое переменной в php-функции.

это то, что я пытаюсь.

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.

Related of "размещение html-содержимого между 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(); } ?> - 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(); } ?> 

Использование выходного буфера будет собирать только данные, отправленные на stdout после ob_start и до ob_get_clean . Ваш код был сломан, так как похоже, что вы пытаетесь установить 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>' 

Кроме того, использование .- состоит в том, чтобы добавить две строки вместе. Поскольку вы хотите, чтобы $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"; } в 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"; } 

Для этого вы можете использовать <<<html и html . Пример ниже

введите описание изображения здесь

 <?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, когда вы собираетесь перевести его в переменную.