建站 21 篇

建站之阿里云邮件推送

评论被回复时,如果评论者填了邮箱,则向其发送通知邮件。使用阿里云的邮件推送。每日免费额度 200 封。

/**
* 发送阿里云邮件
*/
class Util_Mail
{
private static $url, $accessId, $accessSecret, $account, $name;

public static function send($title, $content, $receiver = null)
{
if (empty($title) || empty($content)) {
return false;
}

self::init();

if (is_null($receiver)) {
$receiver = Common::getAdminMail();
} elseif (!filter_var($receiver, FILTER_VALIDATE_EMAIL)) {
return false;
}

- 全文剩余 78% -

建站之图片缩略图

难点在于,gif 图片直接截缩略图可能有巨大噪音,所以改为截取第一帧。

//生成缩略图
public static function createThumb($imagePath)
{
try {
if (!($imagePath = File::exist($imagePath))) {
return false;
}

if (is_mobile()) {
//移动端生成更小的图
$path = $imagePath . '_s.jpg';
$maxWidth = 147;
} else {
$path = $imagePath . '_m.jpg';
$maxWidth = 294;
}
$maxHeight = 500;

$imagick = new Imagick($imagePath);
$width = $imagick->getImageWidth();

- 全文剩余 65% -

建站之图片大小调整

借助 imagemagick 扩展调整图片大小。

$maxSize = 2097152; //图片限制 2M
$maxWidth = 1024;
$maxHeight = 768;

try {
do {
$imagick = new Imagick($imagePath);
if ($maxSize >= $imagick->getImageLength()) {
break;
}

if ($maxWidth < $imagick->getImageWidth()) {
$imagick->scaleImage($maxWidth, 0);
} elseif ($maxHeight < $imagick->getImageHeight()) {
$imagick->scaleImage(0, $maxHeight);
}

$imagick->writeImage($imagePath);
$imagick->destroy();
} while (1);
} catch (Exception $e) {
}