2017-01-14 8 views
0

PHPページ(Apache、LAMP)からHTMLファイルからPDFを作成しようとしていますWierdのことは、コマンドラインからスクリプトを実行すると動作し、期待される。しかし、ブラウザでページを参照すると、何もしません。私はそれがどこかの権限の問題だと思っていますが、私は困惑しています!ここにコードがあります。私はそれが期待される出力を生成し、コマンドラインからスクリプトを実行するとHTMLDOCは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"; 
    } 
?> 

(それがシェルコマンドの実行を許可されていないPHPだけの問題ではありませんので、ブラウザに出力を生成DOES lsコマンドに注意)、および

> 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コマンドのみが出力されます。

help !?

+0

また、私はoutput2ディレクトリをapache:apacheにchownし、777にchmod'edして、おそらくそれが問題であると考えました。まだ仕事がありません。これは、PDFファイルではなく、うまくHTMLファイルを書いています。 –

+0

php-error-logには何がありますか?またはApacheのもの? – junkfoodjunkie

+0

@AlexRussell:まさにあなたの問題の解決策ではありませんが、HTMLをPHPでPDFに変換しようとするなら、DOMPDFを見てみてください。シェルコマンドを実行するのは汚いですが、正確に移植可能ではありません。 – lxg

答えて

0

あなたのPHPファイルは、読み込まれた方法に応じて別のディレクトリに保存されているものと同じディレクトリで実行してみてください。 (includerequire、またはApacheによって.htaccessまたは直接経由でIE。)

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/のようなパッケージを使用すると、しかし最高のだろうとのコメントに同意します。

関連する問題