define('CLIENT_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXX'); session_start(); if (isset($_GET['code'])) { $code = $_GET['code']; // Exchange the authorization code for an access token. $curl = new Curl(); $curl->post('https://accounts.google.com/o/oauth2/token', array('code' => $code, 'client_id' => CLIENT_ID, 'client_secret' => CLIENT_SECRET, 'redirect_uri' => implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])), 'grant_type' => 'authorization_code')); if ($curl->error) { echo $curl->response->error . ': ' . $curl->response->error_description; exit; } $_SESSION['access_token'] = $curl->response->access_token; header('Location: ?'); } elseif (!empty($_SESSION['access_token']) && !isset($_GET['retry'])) { // Use the access token to retrieve the profile. $curl = new Curl(); $curl->setHeader('Content-Type', 'application/json'); $curl->setHeader('Authorization', 'OAuth ' . $_SESSION['access_token']); $curl->get('https://www.googleapis.com/plus/v1/people/me'); if ($curl->error) { echo 'Error ' . $curl->response->error->code . ': ' . $curl->response->error->message . '.<br />'; echo '<a href="?retry">Retry?</a>'; exit; } echo 'Hi ' . $curl->response->displayName . '.'; } else { $curl = new Curl(); $curl->get('https://accounts.google.com/o/oauth2/auth', array('scope' => 'https://www.googleapis.com/auth/plus.me', 'redirect_uri' => implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])), 'response_type' => 'code', 'client_id' => CLIENT_ID, 'approval_prompt' => 'force')); $url = $curl->responseHeaders['Location']; echo '<a href="' . $url . '">Continue</a>'; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; // Retrieve first N pages of search results. $pages = 10; $q = 'coffee'; $curl = new Curl('https://www.example.com/search'); for ($i = 1; $i <= $pages; $i++) { // https://www.example.com/search?q=coffee&page=N $curl->get(array('q' => $q, 'page' => $i)); }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXX'); define('API_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('OAUTH_ACCESS_TOKEN', 'XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('OAUTH_TOKEN_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); $woeid = '2487956'; $oauth_data = array('id' => $woeid, 'oauth_consumer_key' => API_KEY, 'oauth_nonce' => md5(microtime() . mt_rand()), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => OAUTH_ACCESS_TOKEN, 'oauth_version' => '1.0'); $request_values = $oauth_data; ksort($request_values); $url = 'https://api.twitter.com/1.1/trends/place.json'; $request = implode('&', array('GET', rawurlencode($url), rawurlencode(http_build_query($request_values, '', '&', PHP_QUERY_RFC3986)))); $key = implode('&', array(rawurlencode(API_SECRET), rawurlencode(OAUTH_TOKEN_SECRET))); $oauth_data['oauth_signature'] = base64_encode(hash_hmac('sha1', $request, $key, true)); $authorization = array(); foreach ($oauth_data as $key => $value) { $authorization[] = $key . '="' . rawurlencode($value) . '"'; } $authorization = 'Authorization: OAuth ' . implode(', ', $authorization); $curl = new Curl(); $curl->setOpt(CURLOPT_HTTPHEADER, array($authorization)); $curl->get($url, array('id' => $woeid)); echo 'Current trends:' . "\n"; foreach ($curl->response['0']->trends as $trend) { echo '- ' . $trend->name . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $address = 'Paris, France'; $curl = new Curl(); $curl->get('http://maps.googleapis.com/maps/api/geocode/json', array('address' => $address)); if ($curl->response->status === 'OK') { $result = $curl->response->results['0']; echo $result->formatted_address . ' is located at ' . 'latitude ' . $result->geometry->location->lat . ' and ' . 'longitude ' . $result->geometry->location->lng . '.'; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; // curl \ // -X POST \ // -d "id=1&content=Hello+world%21&date=2015-06-30+19%3A42%3A21" \ // "https://httpbin.org/post" $data = array('id' => '1', 'content' => 'Hello world!', 'date' => date('Y-m-d H:i:s')); $curl = new Curl(); $curl->post('https://httpbin.org/post', $data); var_dump($curl->response->form);
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('MAILCHIMP_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXX'); $parts = explode('-', MAILCHIMP_API_KEY); define('MAILCHIMP_BASE_URL', 'https://' . $parts['1'] . '.api.mailchimp.com/2.0/'); $curl = new Curl(); $curl->get(MAILCHIMP_BASE_URL . '/lists/list.json', array('apikey' => MAILCHIMP_API_KEY)); if ($curl->response->total === 0) { echo 'No lists found'; exit; } $lists = $curl->response->data; $list = $lists['0']; $curl->post(MAILCHIMP_BASE_URL . '/lists/subscribe.json', array('apikey' => MAILCHIMP_API_KEY, 'id' => $list->id, 'email' => array('email' => '*****@*****.**'))); if ($curl->error) { echo $curl->response->name . ': ' . $curl->response->error . "\n"; } else { echo 'Subscribed ' . $curl->response->email . '.' . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('INSTAGRAM_CLIENT_ID', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('INSTAGRAM_CLIENT_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); session_start(); $redirect_uri = implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])); if (isset($_GET['code'])) { $code = $_GET['code']; $curl = new Curl(); $curl->post('https://api.instagram.com/oauth/access_token', array('client_id' => INSTAGRAM_CLIENT_ID, 'client_secret' => INSTAGRAM_CLIENT_SECRET, 'grant_type' => 'authorization_code', 'redirect_uri' => $redirect_uri, 'code' => $code)); if ($curl->error) { echo $curl->response->error_type . ': ' . $curl->response->errorMessage . '<br />'; echo '<a href="?">Try again?</a>'; exit; } $_SESSION['access_token'] = $curl->response->access_token; } if (isset($_SESSION['access_token'])) { $curl = new Curl(); $curl->get('https://api.instagram.com/v1/media/popular', array('access_token' => $_SESSION['access_token'])); foreach ($curl->response->data as $media) { echo '<a href="' . $media->link . '" target="_blank">' . '<img alt="" src="' . $media->images->thumbnail->url . '" />' . '</a>'; } } else { header('Location: https://api.instagram.com/oauth/authorize/?' . http_build_query(array('client_id' => INSTAGRAM_CLIENT_ID, 'redirect_uri' => $redirect_uri, 'response_type' => 'code'))); exit; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; // curl -X PUT -d "id=1&first_name=Zach&last_name=Borboa" "https://httpbin.org/put" $curl = new Curl(); $curl->put('https://httpbin.org/put', array('id' => 1, 'first_name' => 'Zach', 'last_name' => 'Borboa')); echo 'Data server received via PUT:' . "\n"; var_dump($curl->response->form);
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('API_KEY', ''); define('API_SECRET', ''); $url = 'https://coinbase.com/api/v1/account/balance'; $nonce = (int) (microtime(true) * 1000000.0); $message = $nonce . $url; $signature = hash_hmac('sha256', $message, API_SECRET); $curl = new Curl(); $curl->setHeader('ACCESS_KEY', API_KEY); $curl->setHeader('ACCESS_SIGNATURE', $signature); $curl->setHeader('ACCESS_NONCE', $nonce); $curl->get($url); echo 'My current account balance at Coinbase is ' . $curl->response->amount . ' ' . $curl->response->currency . '.' . "\n";
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; function construct_url($photo, $size = 's', $ext = 'jpg') { $url = 'http://farm' . $photo->farm . '.staticflickr.com/' . $photo->server . '/' . $photo->id . '_' . $photo->secret . '_' . $size . '.' . $ext; return $url; } define('FLICKR_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); $data = array('method' => 'flickr.photos.search', 'api_key' => FLICKR_API_KEY, 'text' => 'happy', 'sort' => 'interestingness-desc', 'safe_search' => '3', 'format' => 'json', 'nojsoncallback' => '1'); $curl = new Curl(); $curl->get('https://api.flickr.com/services/rest/', $data); foreach ($curl->response->photos->photo as $photo) { echo '<img alt="" src="' . construct_url($photo) . '" height="75" width="75" />'; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('GRATIPAY_USERNAME', 'XXXXXXXXXX'); define('GRATIPAY_API_KEY', 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'); $data = array(array('username' => 'user' . mt_rand(), 'platform' => 'gratipay', 'amount' => '0.02'), array('username' => 'user' . mt_rand(), 'platform' => 'gratipay', 'amount' => '0.02')); $curl = new Curl(); $curl->setHeader('Content-Type', 'application/json'); $curl->setBasicAuthentication(GRATIPAY_API_KEY); $curl->post('https://gratipay.com/' . GRATIPAY_USERNAME . '/tips.json', json_encode($data)); foreach ($curl->response as $tip) { echo $tip->amount . ' given to ' . $tip->username . '.' . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXX'); define('API_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('OAUTH_ACCESS_TOKEN', 'XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('OAUTH_TOKEN_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); $status = 'I love php curl class. https://github.com/php-curl-class/php-curl-class'; $oauth_data = array('oauth_consumer_key' => API_KEY, 'oauth_nonce' => md5(microtime() . mt_rand()), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => OAUTH_ACCESS_TOKEN, 'oauth_version' => '1.0', 'status' => $status); $url = 'https://api.twitter.com/1.1/statuses/update.json'; $request = implode('&', array('POST', rawurlencode($url), rawurlencode(http_build_query($oauth_data, '', '&', PHP_QUERY_RFC3986)))); $key = implode('&', array(API_SECRET, OAUTH_TOKEN_SECRET)); $oauth_data['oauth_signature'] = base64_encode(hash_hmac('sha1', $request, $key, true)); $data = http_build_query($oauth_data, '', '&'); $curl = new Curl(); $curl->post($url, $data); echo 'Posted "' . $curl->response->text . '" at ' . $curl->response->created_at . '.' . "\n";
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; // Retrieve first N pages of search results. $pages = 10; $q = 'coffee'; $curl = new Curl(); $curl->setURL('https://www.example.com/search'); for ($i = 1; $i <= $pages; $i++) { // https://www.example.com/search?q=coffee&page=N $curl->get(array('q' => $q, 'page' => $i)); }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $myfile = curl_file_create('cats.jpg', 'image/png', 'test_name'); $curl = new Curl(); $curl->post('https://httpbin.org/post', array('myfile' => $myfile)); if ($curl->error) { echo 'Error: ' . $curl->errorMessage . "\n"; } else { echo 'Success' . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->download('https://php.net/images/logos/php-med-trans.png', function ($instance, $tmpfile) { $save_to_path = '/tmp/' . basename($instance->url); $fh = fopen($save_to_path, 'wb'); stream_copy_to_stream($tmpfile, $fh); fclose($fh); });
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->progress(function ($client, $download_size, $downloaded, $upload_size, $uploaded) { if ($download_size === 0) { return; } $percent = floor($downloaded * 100 / $download_size); echo ' ' . $percent . '%' . "\r"; }); $curl->download('https://php.net/distributions/manual/php_manual_en.html.gz', '/tmp/php_manual_en.html.gz');
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; // curl \ // -X POST \ // -d "{"id":"1","content":"Hello world!","date":"2015-06-30 19:42:21"}" \ // "https://httpbin.org/post" $data = json_encode(array('id' => '1', 'content' => 'Hello world!', 'date' => date('Y-m-d H:i:s'))); $curl = new Curl(); $curl->setHeader('Content-Type', 'application/json'); $curl->post('https://httpbin.org/post', $data); var_dump($curl->response->json);
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->download('https://php.net/images/logos/php-med-trans.png', '/tmp/php-med-trans.png');
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->progress(function ($client, $download_size, $downloaded, $upload_size, $uploaded) { if ($download_size === 0) { return; } // Display a progress bar: xxx% [=======> ] $progress_size = 40; $fraction_downloaded = $downloaded / $download_size; $dots = round($fraction_downloaded * $progress_size); printf('%3.0f%% [', $fraction_downloaded * 100); $i = 0; for (; $i < $dots - 1; $i++) { echo '='; } echo '>'; for (; $i < $progress_size - 1; $i++) { echo ' '; } echo ']' . "\r"; }); $curl->complete(function ($instance) { echo "\n" . 'download complete' . "\n"; }); $curl->download('https://php.net/distributions/manual/php_manual_en.html.gz', '/tmp/php_manual_en.html.gz');
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->get('https://coinbase.com/api/v1/prices/spot_rate'); echo 'The current price of bitcoin at Coinbase is ' . '$' . $curl->response->amount . ' ' . $curl->response->currency . '.' . "\n";
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $curl = new Curl(); $curl->get('http://backend.deviantart.com/rss.xml', array('q' => 'boost:popular in:photography/people/fashion', 'type' => 'deviation')); foreach ($curl->response->channel->item as $entry) { $thumbnails = $entry->children('http://search.yahoo.com/mrss/')->thumbnail; foreach ($thumbnails as $thumbnail) { $img = $thumbnail->attributes(); echo '<a href="' . $entry->link . '">' . '<img alt="" src="' . $img->url . '" height="' . $img->height . '" width="' . $img->width . '" />' . '</a>'; } }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('INSTAGRAM_CLIENT_ID', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); $curl = new Curl(); $curl->get('https://api.instagram.com/v1/media/search', array('client_id' => INSTAGRAM_CLIENT_ID, 'lat' => '37.8296', 'lng' => '-122.4832')); foreach ($curl->response->data as $media) { $image = $media->images->low_resolution; echo '<img alt="" src="' . $image->url . '" width="' . $image->width . '" height="' . $image->height . '" />'; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $video_ids = array('9bZkp7q19f0', '_OBlgSz8sSM', 'uelHwf8o7_U', 'KQ6zr6kCPj8', 'ASO_zypdnsQ', 'pRpeEdMmmQ0'); foreach ($video_ids as $video_id) { $curl = new Curl(); $curl->get('https://gdata.youtube.com/feeds/api/videos/' . $video_id . '?alt=json'); echo '"' . $curl->response->entry->title->{'$t'} . '" has ' . number_format($curl->response->entry->{'yt$statistics'}->viewCount) . ' views.' . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $data = array(); if (isset($_GET['after'])) { $data['after'] = $_GET['after']; } $curl = new Curl(); $curl->get('http://www.reddit.com/r/pics/top/.json', $data); echo '<ul>'; foreach ($curl->response->data->children as $result) { $pic = $result->data; echo '<li>' . '<a href="' . $pic->url . '" target="_blank">' . $pic->title . '<br />' . '<img alt="" src="' . $pic->thumbnail . '" />' . '</a> ' . $pic->score . ' pts ' . $pic->num_comments . ' comments by ' . $pic->author . '</li>'; } echo '</ul>'; echo '<a href="?after=' . $curl->response->data->after . '">Next</a>';
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; define('YOUTUBE_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); $playlistId = 'RDHJb0VYVtaNc'; $curl = new Curl(); $curl->get('https://www.googleapis.com/youtube/v3/playlistItems', array('key' => YOUTUBE_API_KEY, 'maxResults' => '50', 'part' => 'snippet', 'playlistId' => $playlistId)); echo 'Songs in this playlist:' . "\n"; foreach ($curl->response->items as $item) { echo $item->snippet->title . "\n" . 'https://www.youtube.com/watch?v=' . $item->snippet->resourceId->videoId . "\n" . "\n"; }
<?php require '../src/Curl/Curl.php'; use ZzhhCurl\Curl; $content = <<<EOF <?php echo 'hello, world'; EOF; $curl = new Curl(); $curl->post('https://api.github.com/gists', json_encode(array('description' => 'PHP-Curl-Class test.', 'public' => 'true', 'files' => array('Untitled.php' => array('content' => $content))))); echo 'Gist created at ' . $curl->response->html_url . "\n";