перенести значения из функции в другой файл php

0

Я пытаюсь очистить мою файловую структуру для управления отправкой электронной почты с приложением 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 не после некоторого сложного решения. если кто-то может помочь пролить свет на то, как довести эту функцию до моего файла и сохранить значения. Функция должна выплевывать значения из файла, в который он входит в основном.

Заранее спасибо Джонни

Теги:
function
dompdf

2 ответа

1
Лучший ответ

Вместо того, чтобы раздувать ваш 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

  • 0
    Ого, это то, что они называют шаблонным правом. Как умничка и усы? Мне это нравится. Это никогда не объяснялось мне проще. Благодарю. Я попробую это, когда не полночь, и вернусь к вам. Я думаю, что это будет работать очень хорошо и позволит мне использовать его как часть многих шаблонных вещей, которые у меня есть. Спасибо, куча @DarkBee
  • 0
    Да, это самый простой шаблон. Удачи :)
1

Вам необходимо передать функцию 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.

  • 0
    благодарю вас. Но что, если у меня есть больше, чем просто заголовок страницы - у меня много значений.
  • 0
    Я обычно включаю до 3-4 параметров в функцию. Если вам нужно передать больше, вы должны сначала поместить их в массив и просто передать массив. Затем принимающая функция может проверить ожидаемые индексы массива.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню