這是我的代碼:PHP了shell_exec命令不會像的bash /返回錯誤
$url = escapeshellarg("http://www.mysite.com");
$command = shell_exec("xvfb-run -a -s '-screen 0 640x480x16' wkhtmltopdf --dpi 300 --page-size A4 $url /srv/www/mysite/public_html/tmp_pdf.pdf");
$str = file_get_contents("/srv/www/mysite/public_html/tmp_pdf.pdf");
header('Content-Type: application/pdf');
header('Content-Length: '.strlen($str));
header('Content-Disposition: inline; filename="pdf.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
die($str);
以我的bash(使用Debian)命令
了shell_exec(「xvfb的運行-a -s '式屏幕640 * 480 * 0' wkhtmltopdf --dpi 300 --page尺寸A4的html://www.mysite.com /srv/www/mysite/public_html/tmp_pdf.pdf
作品它會生成一個pdf文件所需的位置,但是當我在PHP中執行命令時,沒有任何東西被創建,並且我返回一個空pdf文件(因爲它不存在)。 有人可以幫我弄清楚什麼是錯的?
我希望html://協議存在,否則你可能想要嘗試http:// ..另外,爲了確保URL中沒有字符被shell_exec/bash解釋,請使用escapeshellarg( )的URL http://php.net/manual/en/function.escapeshellarg.php之前傳遞它作爲參數。乾杯 – smassey 2012-04-25 12:24:10