通过浏览器或通过CLI调用PHP脚本有什么区别吗?

时间:2015-11-26 07:32:50

标签: php http webserver command-line-interface

我和我的室友都在发展..我正在通过浏览器测试我的脚本..他通过CLI调用他的脚本,他试图说服我,通过CLI也这样做。&#34 ;因为它是不同的" ..我没有看到任何区别,我认为这是不合逻辑的.....所以除了http / tcp-overhead ..在通过HTTP或CLI调用脚本时有什么本质的区别吗? / p>

2 个答案:

答案 0 :(得分:1)

<强> HTTP

这些值可以作为 GET POST 方法传递,该方法将在php全局数组 $ _ GET $ _ POST中提供分别。

http://localhost/project/index.php?id=4

<强> CLI

可以通过$_GET['id']访问ID的值 但是在 CLI 模式下,这些值可以作为参数传递,这些参数将在$ argv数组中提供。

php /var/www/project/index.php 4

$argv[1]

可以访问价值

答案 1 :(得分:0)

在大多数环境中,cli版本没有加载相同的php.ini设置。这用于避免在嵌入式(mod_php)或守护进程(php-fm)版本中应用 limit

例如,在cli模式下,您不需要低 memory_limit max_execution_time

这是异步任务的cli模式的强大优势之一(可能是长期和内存繁重的任务)。

现在,对于测试应用程序,如果最终应用程序必须在http服务器(mod_php)或php守护程序(php-fpm)中运行,在cli模式下测试应用程序是一个缺点,因为您的测试无法检测到大问题(例如达到内存限制时崩溃或在达到max_execution时间时没有响应 - 甚至在之前的任何其他超时(在http服务器或fastcgi协议中) - 。