检查cURL输出PHP

时间:2012-06-22 16:56:11

标签: php curl

我正在尝试检查cURL的输出。

<?php

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://blablabla.com");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $curlresult=curl_exec ($ch);
      curl_close ($ch);



    if ($curlresult == "OK") {
        $result = "The curl action was succeeded! (OUTPUT of curl is: ".$curlresult.")";
    } else {
        $result = "The curl action has FAILED! (OUTPUT of curl is: ".$curlresult.")";
    }

echo $result;

?>

网址(https://blablabla.com)是一个只显示确定的网址。 所以,使用代码,我希望看到

  

“卷曲动作成功了!(卷曲的输出是:好的)”

但是,我得到的是:

  

卷曲动作失败了! (卷曲的输出是:OK)

我想我犯了一些愚蠢的错误。如何检查https://blablabla.com是否包含“确定”?

谢谢!

4 个答案:

答案 0 :(得分:4)

您可能会在OK或其他字符之前或之后获得额外的空格。

我建议通过使用var_dump($curlresult);print_r($curlresult);

测试数组内部的内容来完成上述人员的建议

但另外你可以代替匹配$ curlresult仅等于“OK”,你可以测试$ curlresult是否包含“OK”。

<?php

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://blablabla.com");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $curlresult=curl_exec ($ch);
      curl_close ($ch);



    if (preg_match("/OK/i", $curlresult)) {
        $result = "The curl action was succeeded! (OUTPUT of curl is: ".$curlresult.")";
    } else {
        $result = "The curl action has FAILED! (OUTPUT of curl is: ".$curlresult.")";
    }

echo $result;

?>

答案 1 :(得分:2)

你可以做到

$info = curl_getinfo($ch);
var_dump($info);

为您提供有关返回的http状态代码和连接时间等的信息。

答案 2 :(得分:1)

您应该尝试var_dump($curlresult);看看您真正得到的内容,否则我认为使用SSL(HTTPS)可能会出现问题,以便快速解决此问题(接受任何服务器证书):

<?php

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://blablabla.com");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $curlresult=curl_exec ($ch);
     curl_close ($ch);



    if ($curlresult == "OK") {
        $result = "The curl action was succeeded! (OUTPUT of curl is: ".$curlresult.")";
    } else {
        $result = "The curl action has FAILED! (OUTPUT of curl is: ".$curlresult.")";
    }

//var_dump($curlresult);
echo $result;

?>

答案 3 :(得分:0)

请参阅此代码块:

if ($curlresult == "OK") {
        $result = "The curl action was succeeded! (OUTPUT of curl is: ".$curlresult.")";
    } else {
        $result = "The curl action has FAILED! (OUTPUT of curl is: ".$curlresult.")";
    }

假设$curlresult是字符串,首先尝试var_dump($curlresult)以了解从此调用返回的数据类型响应。可能是返回类型不是字符串 然后在if条件下使用该数据类型的检查。