1

我正在尝试使用 curl 检查我的电子邮件。

我有一个连接到 gmail 的功能:

function check_email($url)
{ 
    // sendRequest 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);
    $curlData = curl_exec($curl);
    curl_close($curl);

    //returning retrieved message
    return $curlData;
}

当我调用该函数并回显它 ( $email = check_email($ur); echo $email;) 时,gmail 会向我发送一些 html 而不是显示消息:

<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="-very large url-">here</A>.
</BODY>
</HTML>

所以我想然后提取"-very large url-"并卷曲到那个,但是当我var_dump($email)说它是一个布尔值时!如果它是布尔值,为什么它会返回 html,我如何通过 php 访问上述 html?

4

2 回答 2

2
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_exec()如果您想返回布尔值以外的任何值,则应使用该值。

于 2012-12-06T02:41:23.873 回答
1

http://php.net/manual/en/function.curl-exec.php

成功时返回 TRUE,失败时返回 FALSE。但是,如果设置了 CURLOPT_RETURNTRANSFER 选项,它将在成功时返回结果,在失败时返回 FALSE。

看起来您已CURLOPT_RETURNTRANSFER设置为 0(假)。

http://php.net/manual/en/function.curl-setopt.php

于 2012-12-06T02:41:45.357 回答