3

我想知道是否可以从 shell 命令行执行 PHP 脚本。

如果从浏览器执行,从 shell 执行的脚本是否具有确切的功能?还是编码有区别。

从 shell 运行脚本以获得性能是否更好,从 windows 或 unix/linux 运行它是否更好

我问所有这些问题是因为,我想开发一个 PHP 脚本,它可以从 MySQL db 中列出的某些 url 的 http 标头中获取一些数据,然后将数据存储在数据库中。

你们能指出我正确的方向吗,我需要ubuntu,还是有可以从windows运行php的shell?我现在安装的只有 WAMP,它有 mysql、php 和 apache 服务器。

作为新手,我很抱歉。

谢谢你的帮助

4

4 回答 4

3

我想知道是否可以从 shell 命令行执行 PHP 脚本。

可以通过执行:

$ php -f your_script.php

或者通过插入#/usr/bin/env php脚本的第一行并使其可执行。

$ head -n 1 your_sript.php
#/usr/bin/env php
$ chmod +x your_script.php
$ ./your_script.php

注意:此示例仅适用于 UNIX 系统。

如果从浏览器执行,从 shell 执行的脚本是否具有确切的功能?还是编码有区别。

您可以使用相同的语法/函数等。唯一的区别是变量中有命令行参数$argv和其他一些值$_SERVER

从 shell 运行脚本以获得性能是否更好,从 windows 或 unix/linux 运行它是否更好。

这并不重要。对于您的用例,您实际上并不需要网络服务器和功能齐全的 GUI。拥有命令行工具的好处是,您可以将您的程序与其他可用程序(例如grep等)结合起来。

你们能指出我正确的方向吗,我需要ubuntu,还是有可以从windows运行php的shell?

你不需要ubuntu,你也可以从windows执行一个shell脚本。PHP 可执行文件位于%PATH%. 这个问题将帮助您做到这一点:https ://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use -他们

然后只需使用打开cmd.exe并执行脚本php -f your_script.php

于 2013-02-11T09:26:29.587 回答
3

我想知道是否可以从 shell 命令行执行 PHP 脚本。

是的

如果从浏览器执行,从 shell 执行的脚本是否具有确切的功能?还是编码有区别。

它不会$_REQUEST填充好友,$_SERVER也不会包含服务器信息。

从 shell 运行脚本以提高性能是否更好

也许。它避免了运行网络服务器的开销。它会阻止您在内存中缓存版本以便更快地重新执行。

从windows或unix/linux运行它更好吗

对其进行基准测试。

我问所有这些问题是因为,我想开发一个 PHP 脚本,它可以从 MySQL db 中列出的某些 url 的 http 标头中获取一些数据,然后将数据存储在数据库中。

似乎不需要为此使用 Web 服务器。

你们能指出我正确的方向吗,我需要ubuntu,还是有可以从windows运行php的shell?

标准的 Windows shell 可以。

我现在安装的只有 WAMP,它有 mysql、php 和 apache 服务器。

您将需要 PHP 的命令行版本。我不知道 WAMP 是否包含它。

于 2013-02-11T09:26:47.157 回答
1

是的,PHP 可以从命令行运行

不,编码没有任何差异。

唯一的区别是运行脚本的不是 Apache,而是您当前登录的用户。这可能意味着某些地图和文件夹的不同权限。

于 2013-02-11T09:24:03.420 回答
1

是的,您可以使用以下命令从命令行执行 PHP:

/path/to/php.exe /path/to/script.php

主要区别在于它不通过 Apache 运行,所以你不会有依赖它的东西(比如一些$_SERVER数据)。

此外,它不会受到命令行超时的影响,除非您设置了 PHP 限制。

查看http://php.net/manual/en/features.commandline.php了解更多信息。

于 2013-02-11T09:24:21.500 回答