如何从php文件启动/停止linux上的应用程序?

时间:2015-07-12 06:22:32

标签: php linux bash text-editor gedit

我想从PHP访问编辑任何txt文件(在gedit编辑器上) 我正在尝试使用类似的东西:

<?php
shell_exec("gedit filename.txt");
?>

但它甚至没有给出任何结果:

$output=shell_exec("gedit filename.txt");
echo=echo"<pre>$output</pre>";

是否可以在Linux上从PHP打开任何文件或应用程序?

3 个答案:

答案 0 :(得分:1)

shell_exec - 通过shell执行命令并将完整输出作为字符串返回。输出在终端输出。

所以这个:

<?php
    $output = shell_exec('ls -lart');
    echo "<pre>$output</pre>";
?>

将返回目录的ls -lart。 如果对gedit输出执行相同操作,则只会出现错误消息和警告,因为gedit会将文本返回到GUI而不是终端。

如果您想使用此命令获取某些文本,可以使用cat

执行此操作
<?php
     $output = shell_exec('cat ' . $filename');
     echo "<pre>$output</pre>";
?>

这是您打开和编辑文件的方式。

<?php
    $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
    echo fread($myfile,filesize("webdictionary.txt"));
    fclose($myfile);
?>

PHP References

答案 1 :(得分:1)

Gedit是gui的编辑。

您可以做的是以下

// instead of less you could also use cat
$file_content = shell_exec("less filename.txt");
// ...
// manipulate the data via a textarea with html and php
$new_file_content = $_POST['textarea'];
$write_to_file = shell_exec("echo \"".$new_file_content."\" > filename.txt");

答案 2 :(得分:0)

首先确保在PHP配置(here)中启用了shell_exec,并且您的Apache用户具有足够的权限来执行应用程序(here)。

此外,对于Apache来说,为了在系统中运行图形工具,你必须定义它应该使用哪个显示器;您是否可以在Apache启动文件中添加此行:

export DISPLAY=:0.0

或者将其添加到PHP脚本中:

<?php
shell_exec("DISPLAY=:0; gedit filename.txt");
?>