我有一个我在某些服务器上托管的php文件,现在我想通过curl访问URL的输出,如:
curl -s http://ankur.serve.qa.vdopia.com/getTag.php?type=vanilla&tag=master
[1] 81246
**vanilla4.9.8-2**
我得到了很多东西,但实际的输出是vanilla4.9.8-2来得很晚,一旦我输入curl命令后输入,它只是显示进程ID并进入后台。如何在不在后台执行命令的情况下获取输出。
这里是php的完整代码:
header('Content-type: text/plain');
$type = $_GET['type'];
$tag = $_GET['tag'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($type=='portal')
{
if($tag=='' || $tag=='master')
{
curl_setopt($ch, CURLOPT_URL, 'http://portal.vdopia.com/version.txt?'.uniqid());
$output = curl_exec($ch);
curl_close($ch);
echo $output;
}
}
else if ($type=='vanilla')
{
if($tag=='' || $tag=='master')
{
echo 'checking';
curl_setopt($ch, CURLOPT_URL, 'http://serve.vdopia.com/version.txt?'.uniqid());
$output = curl_exec($ch);
curl_close($ch);
echo $output;
}
}
exit();
答案 0 :(得分:4)
curl命令中的&
将curl(或任何shell命令)发送到后台。您需要转义&
以删除shell的这种特殊含义。只需执行这样的命令即可解决问题:
curl -s 'http://ankur.serve.qa.vdopia.com/getTag.php?type=vanilla&tag=master'
输出:
vanilla4.9.8-21
答案 1 :(得分:3)
您需要按如下方式引用您的链接:
curl -s 'http://ankur.serve.qa.vdopia.com/getTag.php?type=vanilla&tag=master'
在shell中,尾随的&符号&
符号使shell在后台运行命令并返回进程状态,它是该命令的异步运行;
答案 2 :(得分:2)
您可以尝试curl -s" http://qa.vdopia.com/qa/mayank/test.php?type=vanilla&tag=master"
与""它应该工作