public function signWithData($data) { $data = \Qiniu\base64_urlSafeEncode($data); return $this->sign($data) . ':' . $data; }
/** * 文字水印 * * @param string $url 图片链接 * @param string $text 文字 * @param string $font 文字字体 * @param string $fontSize 文字字号 * @param string $fontColor 文字颜色 * @param numeric $dissolve 透明度 * @param string $gravity 水印位置 * @param numeric $dx 横轴边距 * @param numeric $dy 纵轴边距 * @link http://developer.qiniu.com/code/v6/api/kodo-api/image/watermark.html#text-watermark * @return string * @author Sherlock Ren <*****@*****.**> */ public function waterText($url, $text, $font = '黑体', $fontSize = 0, $fontColor = null, $dissolve = 100, $gravity = 'SouthEast', $dx = null, $dy = null) { // url合法效验 if (!$this->isUrl($url)) { return $url; } $waterStr = 'watermark/2/text/' . \Qiniu\base64_urlSafeEncode($text) . '/font/' . \Qiniu\base64_urlSafeEncode($font) . '/'; // 拼接文字大小 if (is_int($fontSize)) { $waterStr .= 'fontsize/' . $fontSize . '/'; } // 拼接文字颜色 if (!is_null($fontColor) && $fontColor) { $waterStr .= 'fill/' . \Qiniu\base64_urlSafeEncode($fontColor) . '/'; } // 拼接水印透明度 if (is_numeric($dissolve) && $dissolve <= 100) { $waterStr .= 'dissolve/' . $dissolve . '/'; } // 拼接水印位置 if (in_array($gravity, $this->gravityArr, true)) { $waterStr .= 'gravity/' . $gravity . '/'; } // 拼接横轴边距 if (!is_null($dx) && is_numeric($dx)) { $waterStr .= 'dx/' . $dx . '/'; } // 拼接纵轴边距 if (!is_null($dy) && is_numeric($dy)) { $waterStr .= 'dy/' . $dy . '/'; } // 如果有query_string用|线分割实现多参数 return $url . ($this->hasQuery($url) ? '|' : '?') . $waterStr; }
public function testUrlSafe() { $a = '你好'; $b = \Qiniu\base64_urlSafeEncode($a); $this->assertEquals($a, \Qiniu\base64_urlSafeDecode($b)); }