我想知道是否可以从shell命令行执行PHP脚本。
从shell执行的脚本是否具有从浏览器执行的确切功能?或编码是否存在差异。
从shell运行脚本以提高性能是否更好?从windows或unix / linux运行它是否更好
我问所有这些问题因为,我想开发一个PHP脚本,可以从MySQL数据库中列出的一些网址的http标头中获取一些数据,然后将数据存储在数据库中。
你们能指出我正确的方向吗,我需要ubuntu,还是有一个可以从windows运行php的shell?我目前安装的只有WAMP,它有mysql,php和apache服务器。
我很抱歉成为一名新手。
感谢您的帮助
答案 0 :(得分: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运行它是否更好。
这并不重要。对于您的用例,您不需要Web服务器和全功能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-them
然后只需打开cmd.exe
并使用php -f your_script.php
答案 1 :(得分:3)
我想知道是否可以从shell命令行执行PHP脚本。
是
从shell执行的脚本是否具有从浏览器执行的确切功能?或编码是否存在差异。
它不会填充$_REQUEST
和朋友,$_SERVER
中也不会包含服务器信息。
从shell运行脚本以提高性能
是否更好?
也许。它避免了运行Web服务器的开销。它会阻止您在内存中缓存版本以便更快地重新执行。
并且最好从windows或unix / linux运行它
基准测试。
我问所有这些问题因为,我想开发一个PHP脚本,可以从MySQL数据库中列出的一些网址的http标头中获取一些数据,然后将数据存储在数据库中。
似乎没有必要让网络服务器参与其中。
你们能指出我正确的方向吗,我需要ubuntu,还是有一个可以从windows运行php的shell?
标准Windows shell可以。
目前我所拥有的只有WAMP,它有mysql,php和apache服务器。
您需要PHP的命令行版本。我不知道WAMP是否包括它。
答案 2 :(得分:1)
是的,PHP can be run from command line。
不,编码没有任何差异。
唯一的区别是Apache不是运行脚本,而是您当前登录的用户。这可能意味着某些地图和文件夹具有不同的权限。
答案 3 :(得分:1)
是的,您可以使用以下命令从命令行执行PHP:
/path/to/php.exe /path/to/script.php
主要区别在于它不是通过Apache运行的,所以你不会有依赖它的东西(比如一些$_SERVER
数据)。
除非您设置了PHP限制,否则它不会在命令行上超时。