Я пытаюсь очистить мою файловую структуру для управления отправкой электронной почты с приложением dompdf.
Однако я не знаю, как включить файл html отдельно и сохранить значения. Я пытаюсь использовать эту функцию, но она не работает.
У меня есть файл, содержащий это (pdf.php)
<?php
function template_PDF($html) {
$html ='<doctype>...';
$html .='<title>'.$pagetitle.'</title>';
$html .='<p>More stuff</p>';
}
?>
У меня есть другой файл (processor.php)
include('pdf.php');
$pagetitle = $_POST['title']; // this is only an example
$ticketno = 'noyb'; // this is only an example
$html = template_PDF($html);
require_once("/home/clientname/public_html/framework/pdf/dompdf.php");
$dompdf=new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'portrait');
$dompdf->render();
$pdf=$dompdf->output();
file_put_contents("/home/clientname/docs/REF".$ticketno.".pdf", $pdf);
В основном просто пытаюсь очистить вещи. Im не после некоторого сложного решения. если кто-то может помочь пролить свет на то, как довести эту функцию до моего файла и сохранить значения. Функция должна выплевывать значения из файла, в который он входит в основном.
Заранее спасибо Джонни
Вместо того, чтобы раздувать ваш PHP с помощью HTML внутри variable
вы должны создать HTML файл с заполнителями:
HTML
<!DOCTYPE html>
<head>
<title>{title}</title>
</head>
<body>
{content}
</body>
</html>
Заполнители в этом шаблоне: {title}
и {content}
Теперь, что вы делаете, это доступ к файлу шаблона с помощью:
$html = file_get_contents('location/template.html');
Следующим шагом будет замена ваших заполнителей, это можно сделать следующим образом:
$needles = array(
'{title}',
'{content}',
);
$replaces = array(
$_POST['txt_title'],/* don't forget to sanitize user input*/
$_POST['txt_content'],
);
$html = str_replace($needles, $replaces, $html);
И затем передайте $html
в DOMPDF
Вам необходимо передать функцию template_PDF независимо от того, какие данные ему нужны. Из вашего примера это всего лишь $ pagetitle. Вам также нужна функция, чтобы вернуть результат обратно вам. Итак, теперь ваша функция должна стать:
function template_PDF($pagetitle) {
$html ='<doctype>...';
$html .='<title>'.$pagetitle.'</title>';
$html .='<p>More stuff</p>';
return $html
}
Затем вы вызовете функцию как:
$html = template_PDF($pagetitle);
Вы предоставляете функции название страницы, которое вы получили из $ _POST (и любые другие соответствующие данные, которые вы хотите добавить), и функция возвращает завершенный html.