Auto tweet?

Gestart doorTendmex19 reacties124 weergaven

20 berichten · pagina 1 van 2

Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Hoi one2xs spelers

Ik zoek een auto tweet (automatish twitter poster)

Hij moet dit kunnen:
Ik stel datum+tijd+bericht in En dan om die tijd Zet hij mijn post neer

Heb der wel wa punten voor over maar dat bespreken we in pm!
0
Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Bump sadley
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb m wat heb je ervoor over?
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dit heb ik eens van Luukvdo gekregen. Als je dit in een cronjob zet werkt het. wink
Quote:
Eerst log je hier in met het twitter account dat de berichten gaat plaatsen. Dan maak je hier een app aan. De meeste gegevens spreken voor zich. Bij Callback url kan je gewoon de url van je site invullen. Default access type moet je op Read & Write zetten. Als je dat gedaan hebt krijg je een Consumer Key en een Consumer Secret. Deze moet je even ergens neerzetten. Dan klik je op My Access Token aan de rechterkant van de pagina. Je krijgt dan een Access Token en een Access Token Secret. Deze moet je ook ergens neerzetten.
Dan zet je de volgende code in een bestand en slaat dat op als twitterapi.php
Spoiler tonen
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
 * tmhOAuth
 *
 * An OAuth 1.0A library written in PHP.
 * The library supports file uploading using multipart/form as well as general
 * REST requests. OAuth authentication is sent using the an Authorization Header.
 *
 * @author themattharris
 * @version 0.3
 *
 * 28 September 2010
 */[/COLOR]
[URL="http://www.php.net/class"]class[/URL] tmhOAuth [COLOR= #007700]{[/COLOR]
  [COLOR= #FF8000]/**
   * Creates a new tmhOAuth object
   *
   * @param string $config, the configuration to use for this request
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] __construct[COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auto_fixed_time [COLOR= #007700]=[/COLOR] false[COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// for ease of testing[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/file_exists"]file_exists[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/dirname"]dirname[/URL][COLOR= #007700]([/COLOR]__FILE__[COLOR= #007700]).[/COLOR][COLOR= #DD0000]/_account.php[/COLOR][COLOR= #007700])) {[/COLOR]
      [URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]_account.php[/COLOR][COLOR= #007700];[/COLOR]
      [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700]) &&[/COLOR] [COLOR= #0000BB]$config[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_key[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]hier_consumer_key[/COLOR][COLOR= #007700]) :[/COLOR]
        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]hier_user_token[/COLOR][COLOR= #007700])[/COLOR]
          [COLOR= #0000BB]$config[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]test_with_user[/COLOR][COLOR= #007700]]);[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
          [COLOR= #0000BB]$config[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]test[/COLOR][COLOR= #007700]]);
      endif;
    }[/COLOR]

    [COLOR= #FF8000]// default configuration options[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR]
      [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
        [COLOR= #DD0000]consumer_key[/COLOR]               [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bladie[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]consumer_secret[/COLOR]            [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]blaat[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]user_token[/COLOR]                 [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bla[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]user_secret[/COLOR]                [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bla[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]use_ssl[/COLOR]                    [COLOR= #007700]=>[/COLOR] true[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]host[/COLOR]                       [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]api.twitter.com[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]debug[/COLOR]                      [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]force_nonce[/COLOR]                [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]nonce[/COLOR]                      [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// used for checking signatures. leave as false for auto[/COLOR]
        [COLOR= #DD0000]force_timestamp[/COLOR]            [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]timestamp[/COLOR]                  [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// used for checking signatures. leave as false for auto[/COLOR]
        [COLOR= #DD0000]oauth_version[/COLOR]              [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]1.0[/COLOR][COLOR= #007700],[/COLOR]

        [COLOR= #FF8000]// you probably dont want to change any of these curl values[/COLOR]
        [COLOR= #DD0000]curl_connecttimeout[/COLOR]        [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]30[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]curl_timeout[/COLOR]               [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #FF8000]// for security you may want to set this to TRUE. If you do you need
        // to install the servers certificate in your local certificate store.[/COLOR]
        [COLOR= #DD0000]curl_ssl_verifypeer[/COLOR]        [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]curl_followlocation[/COLOR]        [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// whether to follow redirects or not

        // streaming API[/COLOR]
        [COLOR= #DD0000]is_streaming[/COLOR]               [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]streaming_eol[/COLOR]              [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"rn"[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]streaming_metrics_interval[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]60[/COLOR][COLOR= #007700],
      ),[/COLOR]
      [COLOR= #0000BB]$config[/COLOR]
    [COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Generates a random OAuth nonce.
   * If force_nonce is true a nonce is not generated and the value in the configuration will be retained.
   *
   * @param string $length how many characters the nonce should be before MD5 hashing. default 12
   * @param string $include_time whether to include time at the beginning of the nonce. default true
   * @return void
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] create_nonce[COLOR= #007700]([/COLOR][COLOR= #0000BB]$length[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]12[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$include_time[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700]) {[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_nonce[/COLOR][COLOR= #007700]] ==[/COLOR] false[COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$sequence[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]9[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]A[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]Z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]a[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]z[/COLOR][COLOR= #007700]));[/COLOR]
      [COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]>[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]) ?[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]) :[/COLOR] [COLOR= #0000BB]$length[/COLOR][COLOR= #007700];[/COLOR]
      [URL="http://www.php.net/shuffle"]shuffle[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]);[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]nonce[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/microtime"]microtime[/URL][COLOR= #007700]() .[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$length[/COLOR][COLOR= #007700]));
    }
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Generates a timestamp.
   * If force_timestamp is true a nonce is not generated and the value in the configuration will be retained.
   *
   * @return void
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] create_timestamp[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]] = ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_timestamp[/COLOR][COLOR= #007700]] ==[/COLOR] false [COLOR= #007700]?[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() :[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Encodes the string or array passed in a way compatible with OAuth.
   * If an array is passed each array value will will be encoded.
   *
   * @param mixed $data the scalar or array to encode
   * @return $data encoded in a way compatible with OAuth
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_array"]is_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/array_map"]array_map[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]safe_encode[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_scalar"]is_scalar[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] str_ireplace[COLOR= #007700]([/COLOR]
        [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]+[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]%7E[/COLOR][COLOR= #007700]),[/COLOR]
        [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000] [/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]~[/COLOR][COLOR= #007700]),[/COLOR]
        [URL="http://www.php.net/rawurlencode"]rawurlencode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])
      );
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000][/COLOR][COLOR= #007700];
    }
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Decodes the string or array from its URL encoded form
   * If an array is passed each array value will will be decoded.
   *
   * @param mixed $data the scalar or array to decode
   * @return $data decoded from the URL encoded form
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_array"]is_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/array_map"]array_map[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]safe_decode[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_scalar"]is_scalar[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/rawurldecode"]rawurldecode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
    }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000][/COLOR][COLOR= #007700];
    }
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Returns an array of the standard OAuth parameters.
   *
   * @return array all required OAuth parameters, safely encoded
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] get_defaults[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$defaults[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
      [COLOR= #DD0000]oauth_version[/COLOR]          [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_version[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #DD0000]oauth_nonce[/COLOR]            [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]nonce[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #DD0000]oauth_timestamp[/COLOR]        [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #DD0000]oauth_consumer_key[/COLOR]     [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_key[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #DD0000]oauth_signature_method[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]HMAC-SHA1[/COLOR][COLOR= #007700],
    );[/COLOR]

    [COLOR= #FF8000]// include the user token if it exists[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]] )[/COLOR]
      [COLOR= #0000BB]$defaults[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_token[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]];[/COLOR]

    [COLOR= #FF8000]// safely encode[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$defaults[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$_defaults[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700])] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);
    }[/COLOR]

    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$_defaults[/COLOR][COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Extracts and decodes OAuth parameters from the passed string
   *
   * @param string $body the response body from an OAuth flow method
   * @return array the response body safely decoded to an array of key => values
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] extract_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$body[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$kvs[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$body[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$decoded[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$kvs[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$kv[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]=[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
      [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]);[/COLOR]
      [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]);[/COLOR]
      [COLOR= #0000BB]$decoded[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];
    }[/COLOR]
    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$decoded[/COLOR][COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepares the HTTP method for use in the base string by converting it to
   * uppercase.
   *
   * @param string $method an HTTP method such as GET or POST
   * @return void value is stored to a class variable
   * @author themattharris
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_method[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strtoupper"]strtoupper[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepares the URL for use in the base string by ripping it apart and
   * reconstructing it.
   *
   * @param string $url the request URL
   * @return void value is stored to a class variable
   * @author themattharris
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$parts[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/parse_url"]parse_url[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]= @[/COLOR][COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]port[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]scheme[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$host[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$path[/COLOR] [COLOR= #007700]= @[/COLOR][COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]path[/COLOR][COLOR= #007700]];[/COLOR]

    [COLOR= #0000BB]$port[/COLOR] or [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]https[/COLOR][COLOR= #007700]) ?[/COLOR] [COLOR= #DD0000]443[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000]80[/COLOR][COLOR= #007700];[/COLOR]

    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]https[/COLOR] [COLOR= #007700]&&[/COLOR] [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]!=[/COLOR] [COLOR= #DD0000]443[/COLOR][COLOR= #007700])
        || ([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]http[/COLOR] [COLOR= #007700]&&[/COLOR] [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]!=[/COLOR] [COLOR= #DD0000]80[/COLOR][COLOR= #007700])) {[/COLOR]
      [COLOR= #0000BB]$host[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"$host:$port"[/COLOR][COLOR= #007700];
    }[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"$scheme://$host$path"[/COLOR][COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepares all parameters for the base string and request.
   * Multipart parameters are ignored as they are not defined in the specification,
   * all other types of parameter are encoded for compatibility with OAuth.
   *
   * @param array $params the parameters for the request
   * @return void prepared values are stored in class variables
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #FF8000]// do not encode multipart parameters, leave them alone[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]]) {[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700];[/COLOR]
      [COLOR= #0000BB]$params[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();
    }[/COLOR]

    [COLOR= #FF8000]// signing parameters are request parameters + OAuth default parameters[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700](), ([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700])[/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #FF8000]// Remove oauth_signature if present
    // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]])) {[/COLOR]
      [URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]]);
    }[/COLOR]

    [COLOR= #FF8000]// Parameters are sorted by name, using lexicographical byte value ordering.
    // Ref: Spec: 9.1.1 (1)[/COLOR]
    [URL="http://www.php.net/uksort"]uksort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700],[/COLOR] [COLOR= #DD0000]strcmp[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #FF8000]// encode. Also sort the signed parameters from the POST parameters[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]);[/COLOR]
      [COLOR= #0000BB]$v[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);[/COLOR]
      [COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700];[/COLOR]
      [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]"{$k}={$v}"[/COLOR][COLOR= #007700];
    }[/COLOR]

    [COLOR= #FF8000]// auth params = the default oauth params which are present in our collection of signing params[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params [COLOR= #007700]=[/COLOR] array_intersect_key[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700]);[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]])) {[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]];[/COLOR]
      [URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]]);
    }[/COLOR]

    [COLOR= #FF8000]// request_params is already set if were doing multipart, if not we need to set them now[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]])[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] array_diff_key[COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700]());[/COLOR]

    [COLOR= #FF8000]// create the parameter part of the base string[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepares the OAuth signing key
   *
   * @return void prepared signing key is stored in a class variables
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_signing_key[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_key [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_secret[/COLOR][COLOR= #007700]]) .[/COLOR] [COLOR= #DD0000]&[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_secret[/COLOR][COLOR= #007700]]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepare the base string.
   * Ref: Spec: 9.1.3 ("Concatenate Request Elements")
   *
   * @return void prepared base string is stored in a class variables
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_base_string[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$base[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method[COLOR= #007700],[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url[COLOR= #007700],[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params
    [COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]base_string [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$base[/COLOR][COLOR= #007700]));
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Prepares the Authorization header
   *
   * @return void prepared authorization header is stored in a class variables
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_auth_header[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]headers [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
    [URL="http://www.php.net/uksort"]uksort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700],[/COLOR] [COLOR= #DD0000]strcmp[/COLOR][COLOR= #007700]);[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]"{$k}="{$v}""[/COLOR][COLOR= #007700];
    }[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_header [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]OAuth [/COLOR] [COLOR= #007700].[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000], [/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]headers[COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]Authorization: [/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_header[COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Signs the request and adds the OAuth signature. This runs all the request
   * parameter preparation methods.
   *
   * @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
   * @param string $url the request URL without query string parameters
   * @param array $params the request parameters as an array of key=value pairs
   * @param string $useauth whether to use authentication when making the request.
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] sign[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_method[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #FF8000]// we dont sign anything is were not using auth[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_base_string[COLOR= #007700]();[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_signing_key[COLOR= #007700]();[/COLOR]

      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR]
        [URL="http://www.php.net/base64_encode"]base64_encode[/URL][COLOR= #007700]([/COLOR]
          hash_hmac[COLOR= #007700]([/COLOR]
            [COLOR= #DD0000]sha1[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]base_string[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_key[COLOR= #007700],[/COLOR] true
      [COLOR= #007700])));[/COLOR]

      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_auth_header[COLOR= #007700]();
    }
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Make an HTTP request using this library. This method doesnt return anything.
   * Instead the response should be inspected directly.
   *
   * @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
   * @param string $url the request URL without query string parameters
   * @param array $params the request parameters as an array of key=value pairs
   * @param string $useauth whether to use authentication when making the request. Default true.
   * @param string $multipart whether this request contains multipart data. Default false
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]=[/COLOR]false[COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]create_nonce[COLOR= #007700]();[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]create_timestamp[COLOR= #007700]();[/COLOR]

    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]sign[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]curlit[COLOR= #007700]([/COLOR][COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Make an HTTP request using this library. This method is different to request
   * because on a 401 error it will retry the request.
   *
   * When a 401 error is returned it is possible the timestamp of the client is
   * too different to that of the API server. In this situation it is recommended
   * the request is retried with the OAuth timestamp set to the same as the API
   * server. This method will automatically try that technique.
   *
   * This method doesnt return anything. Instead the response should be
   * inspected directly.
   *
   * @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
   * @param string $url the request URL without query string parameters
   * @param array $params the request parameters as an array of key=value pairs
   * @param string $useauth whether to use authentication when making the request. Default true.
   * @param string $multipart whether this request contains multipart data. Default false
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] auto_fix_time_request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]=[/COLOR]false[COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #FF8000]// if were not doing auth the timestamp isnt important[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700])[/COLOR]
      [URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// some error that isnt a 401[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]code[/COLOR][COLOR= #007700]] !=[/COLOR] [COLOR= #0000BB]401[/COLOR][COLOR= #007700])[/COLOR]
      [URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// some error that is a 401 but isnt because the OAuth token and signature are incorrect
    // TODO: this check is horrid but helps avoid requesting twice when the username and password are wrong[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/stripos"]stripos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]response[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]password[/COLOR][COLOR= #007700]) !==[/COLOR] false[COLOR= #007700])[/COLOR]
     [URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// force the timestamp to be the same as the Twitter servers, and re-request[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auto_fixed_time [COLOR= #007700]=[/COLOR] true[COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_timestamp[/COLOR][COLOR= #007700]] =[/COLOR] true[COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/strtotime"]strtotime[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]headers[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]date[/COLOR][COLOR= #007700]]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Make a long poll HTTP request using this library. This method is
   * different to the other request methods as it isnt supposed to disconnect
   *
   * Using this method expects a callback which will receive the streaming
   * responses.
   *
   * @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
   * @param string $url the request URL without query string parameters
   * @param array $params the request parameters as an array of key=value pairs
   * @param string $callback the callback function to stream the buffer to.
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] streaming_request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #DD0000][/COLOR][COLOR= #007700]) {[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]) ) {[/COLOR]
      [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/function_exists"]function_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]) ) {[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
      }[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$callback[/COLOR][COLOR= #007700];
    }[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]start[/COLOR][COLOR= #007700]]          =[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]();[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]start[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]]         =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]]    =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]]          =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]]     =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]is_streaming[/COLOR][COLOR= #007700]]    =[/COLOR] true[COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Handles the updating of the current Streaming API metrics.
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] update_metrics[COLOR= #007700]() {[/COLOR]
    [COLOR= #0000BB]$now[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]();[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] +[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]]) >[/COLOR] [COLOR= #0000BB]$now[/COLOR][COLOR= #007700])[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];[/COLOR]

    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tps[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/round"]round[/URL][COLOR= #007700]( ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]])[/COLOR] / [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bps[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/round"]round[/URL][COLOR= #007700]( ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]])[/COLOR] / [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]

    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]];[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$now[/COLOR][COLOR= #007700];[/COLOR]
    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Utility function to create the request URL in the requested format
   *
   * @param string $request the API method without extension
   * @param string $format the format of the response. Default json. Set to an empty string to exclude the format
   * @return string the concatenation of the host, API version, API method and format
   */[/COLOR]
  [COLOR= #007700]function[/COLOR] url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$request[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$format[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #DD0000]json[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$format[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$format[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000]".$format"[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
    [COLOR= #0000BB]$proto[/COLOR]  [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]use_ssl[/COLOR][COLOR= #007700]] ?[/COLOR] [COLOR= #DD0000]https:/[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000]http:/[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// backwards compatibility with v0.1[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]v[/COLOR][COLOR= #007700]]))[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]v[/COLOR][COLOR= #007700]];[/COLOR]

    [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]/[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
      [COLOR= #0000BB]$proto[/COLOR][COLOR= #007700],[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #0000BB]$request[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$format[/COLOR]
    [COLOR= #007700]));
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Utility function to parse the returned curl headers and store them in the
   * class array variable.
   *
   * @param object $ch curl handle
   * @param string $header the response headers
   * @return the string length of the header
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlHeader[COLOR= #007700]([/COLOR][COLOR= #0000BB]$ch[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$header[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strpos"]strpos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]:[/COLOR][COLOR= #007700])[/COLOR][COLOR= #007700];[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]) ) {[/COLOR]
      [COLOR= #0000BB]$key[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]-[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]_[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/strtolower"]strtolower[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700])));[/COLOR]
      [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/trim"]trim[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]headers[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #0000BB]$key[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$value[/COLOR][COLOR= #007700];
    }[/COLOR]
    [URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700]);
  }[/COLOR]

  [COLOR= #FF8000]/**
    * Utility function to parse the returned curl buffer and store them until
    * an EOL is found. The buffer for curl is an undefined size so we need
    * to collect the content until an EOL is found.
    *
    * This function calls the previously defined streaming callback method.
    *
    * @param object $ch curl handle
    * @param string $data the current curl buffer
    */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlWrite[COLOR= #007700]([/COLOR][COLOR= #0000BB]$ch[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$l[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/strpos"]strpos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_eol[/COLOR][COLOR= #007700]]) ===[/COLOR] false[COLOR= #007700]) {[/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700];[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$l[/COLOR][COLOR= #007700];
    }[/COLOR]

    [COLOR= #0000BB]$buffered[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_eol[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$content[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$buffered[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];[/COLOR]

    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]]++;[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]] +=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]);[/COLOR]

    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/function_exists"]function_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]]))[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #0000BB]$metrics[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]update_metrics[COLOR= #007700]();[/COLOR]
    [COLOR= #0000BB]$stop[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/call_user_func"]call_user_func[/URL][COLOR= #007700]([/COLOR]
      [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]],[/COLOR]
      [COLOR= #0000BB]$content[/COLOR][COLOR= #007700],[/COLOR]
      [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]),[/COLOR]
      [COLOR= #0000BB]$metrics[/COLOR]
    [COLOR= #007700]);[/COLOR]
    [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$buffered[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$stop[/COLOR][COLOR= #007700])[/COLOR]
      [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]

    [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$l[/COLOR][COLOR= #007700];
  }[/COLOR]

  [COLOR= #FF8000]/**
   * Makes a curl request. Takes no parameters as all should have been prepared
   * by the request method
   *
   * @return void response data is stored in the class variable response
   */[/COLOR]
  [URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlit[COLOR= #007700]() {[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](@[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]prevent_request[/COLOR][COLOR= #007700]])[/COLOR]
      [URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]// method handling[/COLOR]
    [URL="http://www.php.net/switch"]switch[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method[COLOR= #007700]) {
      case[/COLOR] [COLOR= #DD0000]GET[/COLOR][COLOR= #007700]:[/COLOR]
        [COLOR= #FF8000]// GET request so convert the parameters to a querystring[/COLOR]
        [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params[COLOR= #007700])) {[/COLOR]
          [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
            [COLOR= #FF8000]// Multipart params havent been encoded yet.
            // Not sure why you would do a multipart GET but anyway, heres the support for it[/COLOR]
            [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]]) {[/COLOR]
              [COLOR= #0000BB]$params[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]) .[/COLOR] [COLOR= #DD0000]=[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);
            }[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
              [COLOR= #0000BB]$params[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]=[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700];
            }
          }[/COLOR]
          [COLOR= #0000BB]$qs[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]
          [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$qs[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700].[/COLOR] [COLOR= #DD0000]?[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$qs[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url[COLOR= #007700];[/COLOR]
          [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();
        }[/COLOR]
        [URL="http://www.php.net/break"]break[/URL][COLOR= #007700];
    }[/COLOR]

    [COLOR= #FF8000]// configure curl[/COLOR]
    [COLOR= #0000BB]$c[/COLOR] [COLOR= #007700]=[/COLOR] curl_init[COLOR= #007700]();[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_USERAGENT[COLOR= #007700],[/COLOR] [COLOR= #DD0000]"themattharris HTTP Client"[/COLOR][COLOR= #007700]);[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_CONNECTTIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_connecttimeout[/COLOR][COLOR= #007700]]);[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_TIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_timeout[/COLOR][COLOR= #007700]]);[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_RETURNTRANSFER[COLOR= #007700],[/COLOR] TRUE[COLOR= #007700]);[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_SSL_VERIFYPEER[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_ssl_verifypeer[/COLOR][COLOR= #007700]]);[/COLOR]
    curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_FOLLOWLOCA
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ten 1ste een DEV account krijg je niet meer als Nederlander voor twitter ( Of facebook ). Ik denk dat die liever iets kant en klaar zoekt anders had die dit ook wel zelf kunnen maken.
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb een paar dagen geleden dit script nog gebruikt. Dit is kant en klaar. Ik heb hem toch zonet een complete super lange code gegeven? emo
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wiitse schreef:
Ik heb een paar dagen geleden dit script nog gebruikt. Dit is kant en klaar. Ik heb hem toch zonet een complete super lange code gegeven? emo
Sorry ik keek over de bijgevoegde code heen!
0
Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
@witse kan je het in een programma zetten smile
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Programma? Dat is een heel andere taal..
0
Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Oja zag het sorry ;P
Even niet goed gelezen bloos
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
wink
0
Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Hoe wil ik een url geven terwijl hij nog niet gemaakt is?
0
Berichten
186
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Tendmex schreef:
Hoe wil ik een url geven terwijl hij nog niet gemaakt is?
Hoe bedoel je? Een url geven..
0
Tendmex

Lid · Topicstarter

Berichten
15.958
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Your applications publicly accessible home page, where users can go to download, make use of, or find out more information about your application. This fully-qualified URL is used in the source attribution for tweets created by your application and will be shown in user-facing authorization screens.
(If you dont have a URL yet, just put a placeholder here but remember to change it later.)

Heb over dit smile
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Daar moet je gewoon de url van de site doen waarop het bestand staat. Je moet wel webaplicatie aanvinken hè. wink
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren