Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用curl调用此PHP脚本?(来自bash命令行)_Php_Bash_Curl - Fatal编程技术网

如何使用curl调用此PHP脚本?(来自bash命令行)

如何使用curl调用此PHP脚本?(来自bash命令行),php,bash,curl,Php,Bash,Curl,我用PHP编写了一个脚本,其目的只是查询数据库,然后发送一封包含结果的电子邮件 我可以通过浏览器调用脚本,只需使用查询字符串请求URL,例如在地址栏中键入 http://localhost/myapp/index.php?model=manage&view=main 这将调用脚本,一切正常。 注意:一些HTML是由脚本生成的,这是由于我的脚本连接到一个更大的应用程序 当我尝试使用以下命令从bash命令行调用脚本时: curl http://localhost/myapp/index.p

我用PHP编写了一个脚本,其目的只是查询数据库,然后发送一封包含结果的电子邮件

我可以通过浏览器调用脚本,只需使用查询字符串请求URL,例如在地址栏中键入

http://localhost/myapp/index.php?model=manage&view=main
这将调用脚本,一切正常。 注意:一些HTML是由脚本生成的,这是由于我的脚本连接到一个更大的应用程序

当我尝试使用以下命令从bash命令行调用脚本时:

curl http://localhost/myapp/index.php?model=manage&view=main 
curl显示脚本生成的HTML,但是curl过程没有完成-我必须
ctrl+c
退出curl过程,而且脚本处理不正确,电子邮件也没有发送

apache访问日志输出 Apache似乎正在截断查询字符串中的第二个变量


127.0.0.1---[08/Apr/2015:01:28:47+1200]“GET/myapp/index.php?model=manage HTTP/1.1“200 23549”-“curl/7.35.0”

您需要转义
字符,例如将URL放在双引号中,如下所示:

curl "http://localhost/myapp/index.php?model=manage&view=main"

这将保留第二个查询参数。

我解决这个问题的方法是在打开开发工具的情况下在chrome中请求URL。
我在网络选项卡中查看请求,然后右键单击请求并选择“另存为curl选项”


然后,我将(长)curl命令粘贴到终端中,其中包含使curl请求工作所需的选项和参数

您可以通过:
curl重定向curl的输出http://localhost/myapp/index.php?model=manage&view=main 2> /dev/null
谢谢,但这仍然没有解决问题。您可以使用PHP CLI在同一台服务器上执行脚本:
PHP index.PHP manage main
,但必须替换
$\u GET['model']
->
$argv[1]
$\u GET['view']
->
$argv[2]
在代码上。好主意,但无法更改
$\u GET
变量,因为执行初始化的较大应用程序使用它们。另外,我怀疑
mod apache
php cli
之间的
php.ini
差异可能会导致生产中出现问题。请尝试使用
wget
而不是
curl
(将输出重定向到/dev/null)upvote,感谢日志现在确实显示了正确的URL。虽然浏览器中的脚本输出与控制台中的脚本输出不同,但脚本仍没有执行?生成的html页面是否包含对其他脚本的任何AJAX请求?@浏览器和控制台之间的最大html输出相同。i、 e.
部分(以及所有链接的资源-样式表等)被输出。我能看出的主要区别是浏览器随后读取
,并对链接的资源(样式表、js等)发出后续请求(这些都显示在access.log中)。使用curl,只有一个请求命中apachechechecheck,检查浏览器发送的头,并在curl命令中复制这些头