我知道我可以通过>php myscript.php
但是,我想知道我是否可以以类似的方式运行脚本,但是在浏览器中打开它 - 就像加载网页一样。
就我而言,在文件中使用$arguments = getopt("a:b:c:");
然后在CLI中执行它,就像通常>php myfile.php -a foo -b bar -c baz
一样,但输出只是浏览器打开。
从我读过的所有文件中,似乎都没有提到这是可能的......
答案 0 :(得分:0)
所以,经过一些讨论和一些反复试验 - 虽然它可以注入如下值:php myfile.php -a foo -b bar -c baz
然后,您无法在浏览器中打开包含这些值的文件。以下作品:
php myfile.php -a foo -b bar -c baz > output.php && start output.php
因此,即使我的原始文件具有CSS样式等,它仍然包含在输出文件中。这意味着如果需要,我还可以添加CLI输出。
唯一的问题是我不认为输出的结果可能是分页的。如果我错了,有人会纠正我。
答案 1 :(得分:0)
是的,这是可能的,因为php.exe带有内置的Web服务器(自PHP 5.4.0+起)。因此,您可以运行
http://localhost:10999/yourPHPscriptOnYourHarddrive.php
或
http://127.0.0.1:10999/yourPHPscriptOnYourHarddrive.php
如果要指定选项,则可以使用其他任何网址,
http://127.0.0.1:10999/yourPHPscriptOnYourHarddrive.php?a=baz&b=qux
这是一种简单的方法(只需几分钟),即可在Windows(我假设您使用Windows)上运行PHP Web服务器
c:\php\
(或您喜欢的任何位置)c:\php
添加到您的PATH环境中(控制面板->系统->高级系统设置->环境变量->系统变量->路径)。c:\php\php.ini-production
重命名为php.ini
c:\php\php.exe -S 127.0.0.1:10700 -t d:\
启动php Voila。现在,您可以在硬盘上本地d:\ foo \ bar.php中拥有一个PHP脚本,并且可以通过使用浏览器浏览到http://127.0.0.1:10700/foo/bar.php
(顺便说一句,这也适用于所有需要替换QuickPHP的人,这些人尚未更新 不再)。
当然,您应该调整端口和网络根目录,例如c:\php\php.exe -S 127.0.0.1:10700 -t d:\myweb
您甚至可以拥有多个php版本,并同时运行它们,以端口区分,例如。
c:\php559\php.exe -S 127.0.0.1:10559 -t d:\
<-PHP版本5.5.9 c:\php70\php.exe -S 127.0.0.1:10700 -t d:\
<-PHP版本7.0.0 c:\php72\php.exe -S 127.0.0.1:10720 -t d:\
<-PHP版本7.2.0 c:\php72\php.exe -S 127.0.0.1:10999 -t d:\
<-相同的PHP版本,但具有不同的端口,表示它是最新版本c:\php72b\php.exe -S 127.0.0.1:10721 -t d:\
<-相同的PHP版本
但是在另一个具有不同php.ini配置的文件夹中,
按港口区分。您可以通过执行以下操作来验证Windows上的PHP服务器是否已启动并正在运行:
<?php phpinfo(); ?>
创建一个简单的.php index.php
,例如D:\
http://127.0.0.1:10559
,http://127.0.0.1:10700
,http://127.0.0.1:10720
,它将向您显示这些不同的PHP版本。如果从命令行启动php,则只要运行PHP Web服务器进程,cmd.exe窗口就会保持打开状态。除了使用“ quiet.exe”(第三方工具,免费软件)之外,我还没有找到一种有效隐藏该命令提示符的方法。
要在登录Windows时立即在Windows启动时立即准备好我的PHP服务器,请使用.bat批处理脚本,如下所示:
quiet.exe c:\php\php.exe -S 127.0.0.1:10559 -t d:\
提示:
一旦您在Windows上安装了PHP(即使没有将其用作服务器),也几乎不再需要编写批处理(.bat)。我已经用.php脚本替换了几乎所有的批处理文件。我使用foo.bat
代替php foo.php
。批处理文件中可用的所有命令在.php中也都可用。