getKey( "basepath") . "/?")) { // Init the CURL session $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $conf->getKey( "apiurl", "yourls")); curl_setopt($ch, CURLOPT_HEADER, 0); // No header in the result curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return, do not echo result curl_setopt($ch, CURLOPT_POST, 1); // This is a POST request curl_setopt($ch, CURLOPT_POSTFIELDS, array( // Data to POST 'signature' => $conf->getKey( "signature", "yourls"), 'format' => 'json', 'action' => 'shorturl', 'url' => $originalUrl )); // Fetch and return content $data = curl_exec($ch); curl_close($ch); if (!($data === FALSE) && is_string($data)) { $data = json_decode( $data, true); if (!is_null($data) && array_key_exists('statusCode', $data) && array_key_exists('shorturl', $data) && ($data['statusCode'] == 200)) { $shortenedUrl = $data['shorturl']; $opSuccess = TRUE; } else { // error with contents of YOURLS response. $errCode = 3; } } else { // error when calling YOURLS - probably a PrivateBin configuration issue, like wrong/missing apiurl or signature $errCode = 2; } } else { // trying to shorten a URL not pointing to our PrivateBin instance. $errCode = 1; } } if ($opSuccess) { print("
Your shortened paste is $shortenedUrl"); } else { print("
Error: An error occured while trying to shorten the given URL (error code $errCode)"); } function getGetData() { $data = http_build_query($_GET); return $data; } function startsWith($haystack, $needle) { $length = strlen($needle); return (substr($haystack, 0, $length) === $needle); } ?>