#!/usr/bin/php
<?php 
function sign_url($url, $password, $expires = false)
{
    if ($expires === false) {
        $expires = time() + 60 * 60 * 12;
    }
    $parts = parse_url($url);
    if (isset($parts['query'])) {
        $sign = sprintf("%s?%s&expires=%s&pass=%s", $parts['path'], $parts['query'], $expires, $password);
        $new = sprintf("%s://%s%s?%s&expires=%s&token=", $parts['scheme'], $parts['host'], $parts['path'], $parts['query'], $expires);
    } else {
        $sign = sprintf("%s?expires=%s&pass=%s", $parts['path'], $expires, $password);
        $new = sprintf("%s://%s%s?expires=%s&token=", $parts['scheme'], $parts['host'], $parts['path'], $expires);
    }
    $token = md5($sign);
    return sprintf("%s%s", $new, $token);
}
$expires = time() + 60 * 60 * 12;
$password = "******";
foreach (array_slice($_SERVER['argv'], 1) as $url) {
    printf("%s\n", sign_url($url, $password, $expires));
}
Example #2
0
 /**
  * @param Attachment $attachment
  * @param string|null $var
  * @param array $params
  * @param bool|null $sign
  *
  * @return null|string
  */
 function attach_url($attachment, string $var = null, $params = [], bool $sign = null)
 {
     if (!$attachment instanceof Attachment) {
         return null;
     }
     $route = config('attach.route');
     $sign = is_null($sign) ? config('attach.sign') : $sign;
     $name = is_string($route) ? $route : array_get($route, 'as');
     $filename = $attachment->getAttachmentKey() . (is_null($var) ? '' : '.' . $var) . '.' . $attachment->extension;
     $url = route($name, $params + compact('filename'));
     if ($sign) {
         return sign_url($url);
     }
     return $url;
 }