1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
function gravatar(string $value, int $size = 128, array $other = []) { $value = strtolower(trim($value));
if(filter_var($value, FILTER_VALIDATE_EMAIL)) { $hash = md5($value); } else { $hash = $value; }
if($size < 1) { $size = 1; } else if($size > 2048) { $size = 2048; }
if(!isset($other['default'])) { $other['default'] = ''; }
if(isset($other['forcedefault'])) { $other['forcedefault'] = 'y'; }
if(!isset($other['rating'])) { $other['rating'] = 'g'; } else { $other['rating'] = strtolower($other['rating']);
if(!in_array($other['rating'], ['g', 'pg', 'r', 'x'])) { $other['rating'] = 'g'; } }
$domain = 'cn.gravatar.com';
return sprintf('https://%s/avatar/%s?size=%d&%s', $domain, $hash, $size, http_build_query($other)); }
|