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);
}
?>