php curl请求从localhost PHP 5.5工作,但不在PHP 5.3服务器上

时间:2015-11-07 07:35:01

标签: php curl

我的curl代码正在使用PHP 5.5并正确获取页面。但是,运行时我的AWS服务器上的相同代码会拒绝访问,http_code 403.

/**
     * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
     * array containing the HTTP server response header fields and content.
     */
    public static function get_web_page( $url )
    {
        $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';

        $options = array(

            CURLOPT_CUSTOMREQUEST  =>"GET",        //set request type post or get
            CURLOPT_POST           =>false,        //set to GET
            CURLOPT_USERAGENT      => $user_agent, //set user agent
            CURLOPT_COOKIEFILE     => SITE_URL."/image/cookie.txt", //set cookie file
            CURLOPT_COOKIEJAR      => SITE_URL."/image/cookie.txt", //set cookie jar
            CURLOPT_HTTPGET        => TRUE,
            CURLOPT_RETURNTRANSFER => true,     // return web page
            CURLOPT_HEADER         => false,    // don't return headers
            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
            CURLOPT_ENCODING       => "",       // handle all encodings
            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
            CURLOPT_CONNECTTIMEOUT => 5,      // timeout on connect
            CURLOPT_TIMEOUT        => 2,      // timeout on response
            CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        );

        $ch      = curl_init( $url );
        curl_setopt_array( $ch, $options );
        $content = curl_exec( $ch );
        $err     = curl_errno( $ch );
        $errmsg  = curl_error( $ch );
        $header  = curl_getinfo( $ch );
        curl_close( $ch );

        $header['errno']   = $err;
        $header['errmsg']  = $errmsg;
        $header['content'] = $content;
        return $header;
    }

以下是我在服务器上获取请求的响应 -

[url] => http://www.nike.com/us/en_us/launch/c/2015-06/kids-kd7-frozens
    [content_type] => text/html
    [http_code] => 403
    [header_size] => 360
    [request_size] => 202
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.261153
    [namelookup_time] => 0.253034
    [connect_time] => 0.255159
    [pretransfer_time] => 0.25519
    [size_upload] => 0
    [size_download] => 340
    [speed_download] => 1301
    [speed_upload] => 0
    [download_content_length] => 340
    [upload_content_length] => 0
    [starttransfer_time] => 0.261114
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 184.26.199.36
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => 172.31.18.124
    [local_port] => 37602
    [errno] => 0
    [errmsg] => 
    [content] => <HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;nike&#46;com&#47;us&#47;en&#95;us&#47;launch&#47;c&#47;2015&#45;06&#47;kids&#45;kd7&#45;frozens" on this server.<P>
Reference&#32;&#35;18&#46;b1b41160&#46;1446880850&#46;453ef811
</BODY>
</HTML>

)

我正在尝试获取产品的元数据。对于amazon网站,相同的代码正在运行,所以我不确定这是PHP卷曲或特定网站的问题。

如果问题出在网站上,为什么它可以在本地主机上使用PHP 5.3

0 个答案:

没有答案