3

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;

?>

URL(https://blablabla.com)はOKと表示されるだけのURLです。したがって、コードを使用すると、

「The curl アクションが成功しました! (curl の OUTPUT は: OK)」

しかし、私が得るものは次のとおりです。

カール アクションが失敗しました! (curl の OUTPUT は: OK )

私は愚かな間違いを犯していると思います。https://blablabla.comに「OK」が含まれているかどうかを確認するにはどうすればよいですか?

ありがとう!

4

4 に答える 4

5

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;

?>
于 2012-06-23T03:42:09.507 に答える
2

できるよ

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

返された http ステータス コードや接続時間などに関する情報を提供します。

于 2012-06-22T17:49:04.057 に答える
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;

?>
于 2012-06-22T17:22:42.907 に答える
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 条件でそのデータ型のチェックを使用します。

于 2012-06-22T17:29:18.667 に答える