You are here

function dsq_urlopen in Drupal Most Popular 7

Wrapper to provide a single interface for making an HTTP request.

Attempts to use cURL or fsockopen(), whichever is available first.

Parameters

string $url URL to make request to.:

array $postdata (optional) If postdata is provided, the request: method is POST with the key/value pairs as the data.

array $file (optional) Should provide associative array: with two keys: name and field. Name should be the name of the file and field is the name of the field to POST.

1 call to dsq_urlopen()
DisqusResource::__call in modules/mostpopular_disqus/disqusapi/disqusapi.php

File

modules/mostpopular_disqus/disqusapi/url.php, line 240

Code

function dsq_urlopen($url, $postdata = false, $file = false) {
  $response = array(
    'data' => '',
    'code' => 0,
  );
  if ($file) {
    extract($file, EXTR_PREFIX_ALL, 'file');
  }
  if (empty($file_name) || empty($file_field)) {
    $file_name = false;
    $file_field = false;
  }

  // Try curl, fsockopen, fopen + stream (PHP5 only), exec wget
  if (function_exists('curl_init')) {
    if (!function_exists('curl_setopt_array')) {
      function curl_setopt_array(&$ch, $curl_options) {
        foreach ($curl_options as $option => $value) {
          if (!curl_setopt($ch, $option, $value)) {
            return false;
          }
        }
        return true;
      }
    }
    _dsq_curl_urlopen($url, $postdata, $response, $file_name, $file_field);

    // } else if(ini_get('allow_url_fopen') && function_exists('stream_get_contents')) {
    //     _dsq_fopen_urlopen($url, $postdata, $response, $file_name, $file_field);
  }
  else {

    // TODO: Find the failure condition for fsockopen() (sockets?)
    _dsq_fsockopen_urlopen($url, $postdata, $response, $file_name, $file_field);
  }

  // returns array with keys data and code (from headers)
  return $response;
}