我有 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?
答案 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
。
不确定您要实现的目标,请澄清您的问题。