diff --git a/shortenviayourls.php b/shortenviayourls.php
new file mode 100644
index 00000000..28022819
--- /dev/null
+++ b/shortenviayourls.php
@@ -0,0 +1,85 @@
+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);
+}
+?>