PHP CLI - 在浏览器中打开文件

时间:2018-02-07 10:52:10

标签: php command-line-interface

我知道我可以通过>php myscript.php

将php脚本直接运行到我的Windows控制台

但是,我想知道我是否可以以类似的方式运行脚本,但是在浏览器中打开它 - 就像加载网页一样。

就我而言,在文件中使用$arguments = getopt("a:b:c:");

然后在CLI中执行它,就像通常>php myfile.php -a foo -b bar -c baz一样,但输出只是浏览器打开。

从我读过的所有文件中,似乎都没有提到这是可能的......

2 个答案:

答案 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服务器

  1. 下载PHP(约20MB):https://windows.php.net/download/
  2. 将其放入c:\php\(或您喜欢的任何位置)
  3. (可选)将c:\php添加到您的PATH环境中(控制面板->系统->高级系统设置->环境变量->系统变量->路径)。
  4. c:\php\php.ini-production重命名为php.ini
  5. 通过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版本,并同时运行它们,以端口区分,例如。

  1. c:\php559\php.exe -S 127.0.0.1:10559 -t d:\ <-PHP版本5.5.9
  2. c:\php70\php.exe -S 127.0.0.1:10700 -t d:\ <-PHP版本7.0.0
  3. c:\php72\php.exe -S 127.0.0.1:10720 -t d:\ <-PHP版本7.2.0
  4. c:\php72\php.exe -S 127.0.0.1:10999 -t d:\ <-相同的PHP版本,但具有不同的端口,表示它是最新版本
  5. c:\php72b\php.exe -S 127.0.0.1:10721 -t d:\ <-相同的PHP版本 但是在另一个具有不同php.ini配置的文件夹中, 按港口区分。

您可以通过执行以下操作来验证Windows上的PHP服务器是否已启动并正在运行:

  1. 使用内容<?php phpinfo(); ?>创建一个简单的.php
  2. 将其另存为上面指定的Web根中的index.php,例如D:\
  3. 使用浏览器导航到http://127.0.0.1:10559http://127.0.0.1:10700http://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中也都可用。