private function httpRequest(
        $url,
        $request,
        $data = array(),
        $sendHeaders = array(),
        $timeout = 10
    ) {
        $streamParams = array(
            'http' => array(
                'method' => $request,
                'ignore_errors' => true,
                'timeout' => $timeout,
                'header' => "User-Agent: " . $this->userAgent . "\r\n"
            )
        );
        foreach ($sendHeaders as $header => $value) {
            $streamParams['http']['header'] .= $header . ': ' . $value . "\r\n";
        }
        foreach ($this->extraHeaders as $header => $value) {
            $streamParams['http']['header'] .= $header . ': ' . $value . "\r\n";
        }

        if (is_array($data)) {
            if (in_array($request, array('POST', 'PUT')))
                $streamParams['http']['content'] = http_build_query($data);
            elseif ($data && count($data))
                $url .= '?' . http_build_query($data);
        } elseif ($data !== null) {
            if (in_array($request, array('POST', 'PUT')))
                $streamParams['http']['content'] = $data;
        }

        $streamParams['cURL'] = $streamParams['http'];

        $context = stream_context_create($streamParams);
        $fp = @fopen($url, 'rb', false, $context);
        if (!$fp)
            $content = false;
        else
            $content = stream_get_contents($fp);

        $status = null;
        $statusCode = null;
        $headers = array();

        if ($content !== false) {
            $metadata = stream_get_meta_data($fp);
            if (isset($metadata['wrapper_data']['headers']))
                $headerMetadata = $metadata['wrapper_data']['headers'];
            else
                $headerMetadata = $metadata['wrapper_data'];
            foreach ($headerMetadata as $row) {
                if (preg_match('/^HTTP\/1\.[01] (\d{3})\s*(.*)/', $row, $m)) {
                    $statusCode = $m[1];
                    $status = $m[2];
                } elseif (preg_match('/^([^:]+):\s*(.*)$/', $row, $m)) {
                    $headers[mb_strtolower($m[1])] = $m[2];
                }
            }
        }

        return (object) array(
            'ok' => $statusCode == 200,
            'statusCode' => $statusCode,
            'status' => $status,
            'content' => $content,
            'headers' => $headers
        );
    }
private function httpRequest(
        $url,
        $request,
        $data = array(),
        $sendHeaders = array(),
        $timeout = 10
    ) {
        $streamParams = array(
            'http' => array(
                'method' => $request,
                'ignore_errors' => true,
                'timeout' => $timeout,
                'header' => "User-Agent: " . $this->userAgent . "\r\n"
            )
        );
        foreach ($sendHeaders as $header => $value) {
            $streamParams['http']['header'] .= $header . ': ' . $value . "\r\n";
        }
        foreach ($this->extraHeaders as $header => $value) {
            $streamParams['http']['header'] .= $header . ': ' . $value . "\r\n";
        }

        if (is_array($data)) {
            if (in_array($request, array('POST', 'PUT')))
                $streamParams['http']['content'] = http_build_query($data);
            elseif ($data && count($data))
                $url .= '?' . http_build_query($data);
        } elseif ($data !== null) {
            if (in_array($request, array('POST', 'PUT')))
                $streamParams['http']['content'] = $data;
        }

        $streamParams['cURL'] = $streamParams['http'];

        $context = stream_context_create($streamParams);
        $fp = @fopen($url, 'rb', false, $context);
        if (!$fp)
            $content = false;
        else
            $content = stream_get_contents($fp);

        $status = null;
        $statusCode = null;
        $headers = array();

        if ($content !== false) {
            $metadata = stream_get_meta_data($fp);
            if (isset($metadata['wrapper_data']['headers']))
                $headerMetadata = $metadata['wrapper_data']['headers'];
            else
                $headerMetadata = $metadata['wrapper_data'];
            foreach ($headerMetadata as $row) {
                if (preg_match('/^HTTP\/1\.[01] (\d{3})\s*(.*)/', $row, $m)) {
                    $statusCode = $m[1];
                    $status = $m[2];
                } elseif (preg_match('/^([^:]+):\s*(.*)$/', $row, $m)) {
                    $headers[mb_strtolower($m[1])] = $m[2];
                }
            }
        }

        return (object) array(
            'ok' => $statusCode == 200,
            'statusCode' => $statusCode,
            'status' => $status,
            'content' => $content,
            'headers' => $headers
        );
    }
private function httpRequest ( $ url , $ request , $ data = array ( ) , $ sendHeaders = array ( ) , $ timeout = 10 ) { $ streamParams = array ( 'http' => array ( 'method' => $ request , 'ignore_errors' => true , 'timeout' => $ timeout , 'header' => "User-Agent: " . $ this -> userAgent . "\r\n" ) ) ; foreach ( $ sendHeaders as $ header => $ value ) { $ streamParams [ 'http' ] [ 'header' ] .= $ header . ': ' . $ value . "\r\n" ; } foreach ( $ this -> extraHeaders as $ header => $ value ) { $ streamParams [ 'http' ] [ 'header' ] .= $ header . ': ' . $ value . "\r\n" ; } if ( is_array ( $ data ) ) { if ( in_array ( $ request , array ( 'POST' , 'PUT' ) ) ) $ streamParams [ 'http' ] [ 'content' ] = http_build_query ( $ data ) ; elseif ( $ data && count ( $ data ) ) $ url .= '?' . http_build_query ( $ data ) ; } elseif ( $ data !== null ) { if ( in_array ( $ request , array ( 'POST' , 'PUT' ) ) ) $ streamParams [ 'http' ] [ 'content' ] = $ data ; } $ streamParams [ 'cURL' ] = $ streamParams [ 'http' ] ; $ context = stream_context_create ( $ streamParams ) ; $ fp = @ fopen ( $ url , 'rb' , false , $ context ) ; if ( ! $ fp ) $ content = false ; else $ content = stream_get_contents ( $ fp ) ; $ status = null ; $ statusCode = null ; $ headers = array ( ) ; if ( $ content !== false ) { $ metadata = stream_get_meta_data ( $ fp ) ; if ( isset ( $ metadata [ 'wrapper_data' ] [ 'headers' ] ) ) $ headerMetadata = $ metadata [ 'wrapper_data' ] [ 'headers' ] ; else $ headerMetadata = $ metadata [ 'wrapper_data' ] ; foreach ( $ headerMetadata as $ row ) { if ( preg_match ( '/^HTTP\/1\.[01] (\d{3})\s*(.*)/' , $ row , $ m ) ) { $ statusCode = $ m [ 1 ] ; $ status = $ m [ 2 ] ; } elseif ( preg_match ( '/^([^:]+):\s*(.*)$/' , $ row , $ m ) ) { $ headers [ mb_strtolower ( $ m [ 1 ] ) ] = $ m [ 2 ] ; } } } return ( object ) array ( 'ok' => $ statusCode == 200 , 'statusCode' => $ statusCode , 'status' => $ status , 'content' => $ content , 'headers' => $ headers ) ; }
Opens a socket and makes a request to the url of choice. Returns an
object with statusCode, status, content and the received headers.
Opens a socket and makes a request to the url of choice . Returns an object with statusCode status content and the received headers .