从PHP打开记事本

时间:2009-03-24 11:38:33

标签: php string notepad

我想从php文件打开一个记事本,记事本应该包含我在php文件中声明为字符串的文本。基本上一个记事本应该打开我从php文件传递的文本。

7 个答案:

答案 0 :(得分:10)

如果PHP文件在Web服务器上执行,则无法使Web浏览器打开这样的新进程。我相信你可以想象会有什么安全漏洞!

如果您在CLI模式下将PHP文件作为本地脚本运行,则应该能够像其他任何进程一样启动记事本,例如使用backticksexec

但是,如果确实想要执行此服务器端,那么您可以做的最好的事情就是使用一个使用Content-Disposition标头的PHP脚本,例如

//tell client we're delivering text
header('Content-type: text/plain');

//hint that it's a downloadable file
header('Content-Disposition: attachment; filename="textfile.txt"');

//output our text
echo "The quick brown\nfox jumps over\nthe lazy dog.";

然后,用户可以保存此文件并在他们选择的编辑器中打开。

答案 1 :(得分:3)

你不能让PHP在用户的机器上打开一个窗口,因为PHP完全在服务器上运行。当输出到达浏览器时,脚本通常会终止 - 您只能执行您可以要求浏览器执行的操作以及它将允许您执行的操作(使用HTML /标头等)。出于安全考虑,浏览器不会(或不应该)让任意网站对您的计算机做很多事情 - 例如它不会让你产生新的Windows进程。

我认为你能做的最好的事情就是这样:

$string = 'a string';

header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="file.txt"');

echo $string;

这将发送相关标头,以便浏览器将内容视为纯文本类型的名为file.txt的下载。浏览器应提示他们下载一个可能在记事本中打开的文件,除非他们更改了.txt的文件关联。

但是,除非您要求他们上传文档,否则您将无法获得用户对文档所做的任何更改,因此我不确定这是您尝试实现的目标的良好解决方案。

答案 2 :(得分:1)

可以从php执行程序,但只能在服务器端执行。

因此想象服务器运行Windows,它会启动服务器端的记事本。

PHP在服务器上执行,并没有任何东西可以运行客户端。

答案 3 :(得分:1)

从技术上讲,要做到这一点,您必须创建一个文件,然后使用该文件作为参数执行系统。像这样:

//String to show in notepad
$myStringToDisplay = "some text to show in notepad";

//Write this string to a file
$myFile = "somefile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $myStringToDisplay);
fclose($fh);

//Execute notepad with this file as a parameter
system("notepad.exe ".$myFile);

但是,这将在运行PHP文件的服务器上执行记事本(如果您的服务器上甚至启用了系统调用),这可能不是您想要做的。 PHP无法在客户端计算机上执行任何代码,当然也无法进行系统调用来执行客户端所需的任何程序(感谢上帝)。这将是一个巨大的,巨大的安全漏洞。

如果这不能实现所需的功能,请告诉我们您要做什么以及为什么。这听起来不是一个非常明智的要求。

答案 4 :(得分:1)

无法从php应用程序中打开程序。但是你可以使用PHP文本编辑器加载文本文件。您还可以加载您正在谈论的值。

http://www.fckeditor.net/就是这样一位编辑。

答案 5 :(得分:0)

首先,您可以“创建”文件并用文本填充。

执行shell命令:echo $ text>> $文件名 然后执行:notepad $ filenameToOpen

多数民众赞成。

答案 6 :(得分:0)

要从php脚本打开记事本,我们将使用命令行inter phase。 首先,我们将创建一个php文件,我们将编写:

var_dump(popen('notepad','r'));

然后我们会使用notepad.php之类的名称保存它 然后在那里打开命令提示我们将给出我们文件的路径来运行我们的文件 喜欢:

d:/>wamp>www>php notepad.php

它将运行我们的php文件,它将打开notpad。

相关问题