PHP可以执行终端命令

时间:2013-01-23 08:21:13

标签: php

  

可能重复:
  Executing linux commands with PHP

我有一个创建.xfdf文件的PHP文件我想知道PHP是否有办法执行命令,就像你在终端窗口中键入一样?在创建.xfdf文件后生成.pdf文件

后,我必须运行以下命令
pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten

该命令需要能够接受PHP变量,以便为用户自定义。有一个简单的方法吗?

4 个答案:

答案 0 :(得分:4)

是的,您可以使用exec()pcntl_exec()system()

$command = 'pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten';
exec($command);

使用这些命令时要非常小心,它们非常有用/强大,但是由于这个原因,黑客可能会通过它访问整个服务器(取决于权限,但这足以危及您的网站)。

如果您需要发送用户上传的文件名/文本,请检查它们是否为血(例如检查文件路径是否在适当的位置,而不是../../../something.pdf,请检查MIME类型和扩展名。) / p>

答案 1 :(得分:2)

是的,您可以使用:

  1. system
  2. exec
  3. passthru

答案 2 :(得分:2)

根据您的具体要求,您可以使用exec()system()shell_exec()

答案 3 :(得分:1)

使用system()eval()功能。

但请确保用户无法注入任意命令!