如何知道通过cli或apache2handler调用的curl文件

时间:2017-03-02 11:27:58

标签: php curl command-line-interface

我有 call-cli.php

我正在通过命令行执行它。

  

call-cli.php的代码

echo "File 1 ".php_sapi_name(); // returns cli
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/curltest/step1.php?productId=12");
$response = curl_exec($ch);
curl_close($ch);
  

step1.php的代码

echo " step1 ".php_sapi_name(); // returns apache2handler
if(php_sapi_name()==='cli') {
    // To do execute code regarding cli
}
if(php_sapi_name()==='apache2handler') {
    // To do execute code regarding apache2handler
}

当ADMIN通过浏览器运行step1.php时,它应该执行apache2handler代码,并为cli执行diff。 我从 call-cli.php 获取 productId 。所以我需要从 call-cli.php 调用curl 所以我想知道是否有任何方法可以找到通过cli文件返回cli而不是apache2handler或任何其他建议的curl?

2 个答案:

答案 0 :(得分:0)

不,因为Curl通过HTTP浏览器打开step1.php文件,由Web服务器处理。在这种情况下是Apache,因此它是apache2handler

但是,如果从终端执行,PHP脚本只会输出cli

答案 1 :(得分:0)

call-cli.php中的curl调用是通过cli调用curl,但由于您回显了通过Apache提供的step1.php的结果,因此您在代码中看到apache2handler

如果您通过命令行(例如step1.php)致电php step1.php,您会看到它还会返回cli

不确定您要实现的目标,请澄清您的问题。