我想从php文件中打开一个记事本,这个记事本应该包含我在php文件中声明为字符串的文本。实际上,记事本应该会打开,其中包含我从php文件中传递的文本。
发布于 2009-03-24 11:43:59
如果PHP文件在web服务器上执行,则不能使web浏览器打开这样的新进程。我相信你可以想象这将是一个多么安全的漏洞!
如果你在CLI模式下将PHP文件作为本地脚本运行,你应该能够像启动任何其他进程一样启动记事本,例如使用backticks或exec等。
然而,如果你真的想做这个服务器端,你能做的最好的就是有一个使用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.";然后,用户可以保存该文件并在他们选择的编辑器中打开。
发布于 2009-03-24 11:47:24
你不能让PHP在用户的机器上打开一个窗口,因为PHP完全在服务器上运行。当输出到达浏览器时,脚本通常已经终止-您只能执行您可以要求浏览器执行的操作以及它允许您执行的操作(使用HTML / headers等)。出于安全考虑,浏览器不会(或者不应该)让一个任意的网站在你的机器上做很多事情--例如,它不会让你产生新的Windows进程。
我认为你能做的最好的事情是:
$string = 'a string';
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="file.txt"');
echo $string;这将发送相关的标头,以便浏览器将内容视为纯文本类型的名为file.txt的下载。除非他们更改了.txt的文件关联,否则浏览器应提示他们下载可能会在记事本中打开的文件。
但是,除非您要求用户上传文档,否则您将无法获取用户对文档所做的任何更改,因此我不确定对于您试图获得的内容,这是否是一个好的解决方案。
发布于 2009-03-24 11:43:27
可以从php执行程序,但只能在服务器端执行。
因此,假设服务器运行Windows,它将在服务器端启动记事本。
PHP在服务器上执行,与客户端的运行无关。
https://stackoverflow.com/questions/677036
复制相似问题