HTMLDOC не выполняется из переполнения стека

Я пытаюсь создать PDF-файл из HTML-файла со страницы PHP (Apache, LAMP). Странно то, что когда я выполняю скрипт из командной строки, он работает и создает PDF-файл, как и ожидалось. Однако, когда я просматриваю страницу в моем браузере, она ничего не делает. Я думаю, что это где-то проблема с разрешениями, но я в тупике! Вот код (ПРИМЕЧАНИЕ. Команда ls выводит в браузере вывод, поэтому проблема не только в том, что PHP не разрешено выполнять команды оболочки)

    <?php
$htmlName = ("output2/alex" . time() . ".html");
$pdfName = ("output2/alex" . time() . ".pdf");
$html = "<html><body><h1>Hello, World!</h1></body></html>";

$fileHandle = fopen($htmlName, "w+");

fwrite($fileHandle, $html);
fclose($fileHandle);

$command= "htmldoc -t pdf --browserwidth 1000 --embedfonts --header ... --footer t./ --headfootsize 5.0 --fontsize 9 --bodyfont Arial --size letter --top 4 --bottom 25 --left 28 --right 30 --jpeg --webpage $options '$htmlName' -f '$pdfName'";

echo "OUTPUT: \r\n";
$X=passthru($command);

echo "TESTING LS:";
$y=passthru("ls -al");

if(file_exists($htmlName) && file_exists($pdfName)) {
echo "Success.";
} else {
echo "Sorry, it did not create a PDF";
}
?>

Когда я выполняю сценарий из командной строки, он выдает ожидаемый результат и создает файл PDF, как это должно быть:

> php alextest.php
Zend OPcache requires Zend Engine API version 220131226.
The Zend Engine API version 220100525 which is installed, is outdated.

OUTPUT:
PAGES: 1
BYTES: 75403
TESTING LS:total 2036
drwxr-xr-x  9  ----- and so on...

Когда я просматриваю страницу в Chrome, она выводит только команду LS.

Помогите!?

0

Решение

Вы можете попытаться использовать полный путь, поскольку ваш php-файл может выполняться в другом каталоге, чем он сохраняется, в зависимости от того, как он загружен. (IE через include, require, или же .htaccess или напрямую по apache.)

IE

$htmlName = ("/home/alex/html/output2/alex" . time() . ".html");
$pdfName = ("/home/alex/html/output2/output2/alex" . time() . ".pdf");

Я согласен с комментариями, что с помощью пакета, как http://dompdf.github.io/ или же https://tcpdf.org/ было бы лучше, хотя.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]