首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PHP打开记事本

从PHP打开记事本
EN

Stack Overflow用户
提问于 2009-03-24 19:38:33
回答 7查看 10.8K关注 0票数 0

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

EN

回答 7

Stack Overflow用户

发布于 2009-03-24 11:43:59

如果PHP文件在web服务器上执行,则不能使web浏览器打开这样的新进程。我相信你可以想象这将是一个多么安全的漏洞!

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

然而,如果你真的想做这个服务器端,你能做的最好的就是有一个使用Content-Disposition头的PHP脚本,例如

代码语言:javascript
复制
//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.";

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

票数 10
EN

Stack Overflow用户

发布于 2009-03-24 11:47:24

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

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

代码语言:javascript
复制
$string = 'a string';

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

echo $string;

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

但是,除非您要求用户上传文档,否则您将无法获取用户对文档所做的任何更改,因此我不确定对于您试图获得的内容,这是否是一个好的解决方案。

票数 3
EN

Stack Overflow用户

发布于 2009-03-24 11:43:27

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

因此,假设服务器运行Windows,它将在服务器端启动记事本。

PHP在服务器上执行,与客户端的运行无关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/677036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档