如何在curl php中只获取一个响应布尔值


How to get only a response boolean in curl php

我有以下代码

$handle = curl_int();
$i = '123456';
curl_setopt_array(
    $handle, 
    array(
        CURLOPT_URL =>'localhost/unnamed/loginpage.php',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => "uname=birat&pword=$i",
        CURLOPT_RETURNTRANSFER => true,
    )
);
$response = curl_exec($handle);
//This if statement doesnot work
if($response == 1) {
    echo 'Password is '. $i;
}
}
curl_close($handle);

问题是,我总是得到整个html页面,而不是只有"1"或"0"指示用户名和密码匹配。最后一个if语句也不起作用。如果我不使用If语句,我会得到好的结果,即顶部的"1"和下面页面的html数据。我不想要那些html数据。我只想要"1"或"0",并且我希望if子句能够工作。我该怎么办?

CUrl只是为您执行请求,在您的情况下,返回目标页面的内容。您只需要在目标页面上输出10,并进行如下检查:

if ( trim($result)=='1' ) {
    // do something
}

您还需要检查http代码。这可能会对你有所帮助。

$httpcode = curl_getinfo($handle,CURLINFO_HTTP_CODE);
if ($httpcode == '200')
{
    //logged in
}
else
{
    //not logged in
}

在大多数情况下,HTTP代码200是有效的身份验证。