如何通过Mac终端上的curl访问php URL

时间:2017-03-14 10:49:47

标签: php terminal

我有一个我在某些服务器上托管的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();

3 个答案:

答案 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"

与""它应该工作