var_dump说bool但是返回一个字符串-php

时间:2012-12-06 02:37:49

标签: php html string curl boolean

我正在尝试用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?

2 个答案:

答案 0 :(得分:2)

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

如果希望curl_exec()返回除布尔值以外的任何内容,则应使用

答案 1 :(得分:1)

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

  

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

看起来你已将CURLOPT_RETURNTRANSFER设置为0(错误)。

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