> 백엔드 개발 > PHP 튜토리얼 > 获取sina邮箱联系人列表失败,

获取sina邮箱联系人列表失败,

WBOY
풀어 주다: 2016-06-13 10:13:29
원래의
1315명이 탐색했습니다.

获取sina邮箱联系人列表失败,求救!!!

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpdefine ( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) );   //定义COOKIES存放的路径,要有操作的权限define( "TIMEOUT", 1000 ); //超时设定/** * 获得sina邮箱通讯录列表 -- contactssina.class.php */class contactssina{    var $host = "";    function checklogin( $user, $password )    {        if ( empty( $user ) || empty( $password ) )        {            return 0;        }        $ch = curl_init( );        curl_setopt( $ch, CURLOPT_REFERER, "http://mail.sina.com.cn/index.html" );        curl_setopt( $ch, CURLOPT_HEADER, true );        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );        curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );        curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );        curl_setopt( $ch, CURLOPT_URL, "http://mail.sina.com.cn/cgi-bin/login.cgi" );        curl_setopt( $ch, CURLOPT_POST, true );        curl_setopt( $ch, CURLOPT_POSTFIELDS, "&logintype=uid&u=".urlencode( $user )."&psw=".$password );        $contents = curl_exec( $ch );        curl_close( $ch );        if ( !preg_match( "/Location: (.*)\\/cgi\\/index\\.php\\?check_time=(.*)\n/", $contents, $matches ) )        {            return 0;        }        $this->host = $matches[1];        return 1;    }    function getcontacts( $user, $password, &$result )    {        if ( !$this->checklogin( $user, $password ) )        {            return '登陆失败';        }        $ch = curl_init( );        curl_setopt( $ch, CURLOPT_HEADER, true );        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );        curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );        curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );        curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );        curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );        curl_setopt( $ch, CURLOPT_URL, "http://mail.sina.com.cn/cgi-bin/login.cgi" );        curl_setopt( $ch, CURLOPT_POST, true );        curl_setopt( $ch, CURLOPT_POSTFIELDS, "&logintype=uid&u=".urlencode( $user )."&psw=".$password );        curl_exec( $ch );        curl_close( $ch );        $cookies = array( );        $bRet = $this->readcookies( COOKIEJAR, $cookies );        if ( !$bRet && !$cookies['SWEBAPPSESSID'] )        {            return '读取cookie失败';        }        $ch = curl_init( );        curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );        curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );        curl_setopt( $ch, CURLOPT_URL, $this->host."/classic/addr_member.php" );        curl_setopt( $ch, CURLOPT_POST, true );        curl_setopt( $ch, CURLOPT_POSTFIELDS, "&act=list&sort_item=letter&sort_type=desc" );        $content = curl_exec( $ch );        curl_close( $ch );        $bRet = $this->_parsedata( $content, $result );        return "结果:".$bRet;    }    function readcookies( $file, &$result )    {        $fp = fopen( $file, "r" );        while ( !feof( $fp ) )        {            $buffer = fgets( $fp, 4096 );            $tmp = split( "\t", $buffer );            $result[trim( $tmp[5] )] = trim( $tmp[6] );        }        return 1;    }        function _parsedata( $content, &$ar )    {        $ar = array( );        if ( !$content )        {            return '获取内容为空';        }        $data = json_decode( $content );        unset( $content );        foreach ( $data->data->contact as $value )        {            if ( preg_match_all( "/[a-z0-9_\\.\\-]+@[a-z0-9\\-]+\\.[a-z]{2,6}/i", $value->email, $matches ) )            {                $emails = array_unique( $matches[0] );                unset( $matches );                foreach ( $emails as $email )                {                    $ar[$email] = $value->name;                }            }        }        return $ar;    }}$contactssina = new contactssina;$res = $contactssina->getcontacts([email protected]','***',$result);print_r($res);?><div class="clear">
                 
              
              
        
            </div>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿