php:cache_gravatar
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| php:cache_gravatar [2012-07-01 21:43] – mitsu | php:cache_gravatar [2015-07-04 09:05] (Version actuelle) – mitsu | ||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| */ | */ | ||
| $expire = time() -604800 ; // default: 604800 (7 days) | $expire = time() -604800 ; // default: 604800 (7 days) | ||
| - | if (isset($_GET[' | + | $size = 65; |
| - | { | + | |
| - | if (strlen($_GET[' | + | if(isset($_GET[' |
| - | $hash = ereg_replace(" | + | switch |
| - | if (strlen($hash) != 32) { die; } // still 32 characters ? if no, given hash wasn't genuine. die. | + | case 0: |
| - | $newfile = $hash.' | + | $size = 32; break; |
| - | $file = 'https:// | + | case 1: |
| - | if(file_exists($newfile) && filemtime($newfile) < $expire) | + | $size = 120; break; |
| - | { unlink($newfile); } // expired gravatar, out ! | + | default: |
| - | if (file_exists($newfile)) | + | $size = 65; |
| - | { } // the gravatar wasn't removed before: it's valid and doesn' | + | } |
| - | else | + | |
| - | { copy($file, $newfile); | + | |
| - | $imagecheck | + | |
| - | if ($imagecheck[' | + | |
| - | { | + | |
| - | imagepng(imagecreatefromjpeg($newfile), | + | |
| - | unlink($newfile); | + | |
| - | rename($newfile.' | + | |
| - | } | + | |
| } | } | ||
| - | header('Location: | + | |
| - | else | + | if (isset($_GET['g'])) { // g given ? if yes... |
| - | { header(" | + | if (strlen($_GET['g']) !== 32) { header(" |
| + | $hash = preg_replace(" | ||
| + | if (strlen($hash) != 32) { header(" | ||
| + | |||
| + | $newfile = $hash.' | ||
| + | $file = 'http://gravatar.com/ | ||
| + | if(file_exists($newfile) && filemtime($newfile) < $expire) { | ||
| + | unlink($newfile); | ||
| + | } | ||
| + | if (file_exists($newfile)) { | ||
| + | } | ||
| + | else { | ||
| + | copy($file, $newfile); | ||
| + | $imagecheck = getimagesize($newfile); | ||
| + | if ($imagecheck[' | ||
| + | imagepng(imagecreatefromjpeg($newfile), | ||
| + | unlink($newfile); | ||
| + | rename($newfile.' | ||
| + | } | ||
| + | } | ||
| + | header(' | ||
| + | header(' | ||
| + | | ||
| + | | ||
| + | | ||
| + | exit; | ||
| + | } | ||
| + | |||
| + | else { | ||
| + | $seconds_old = 2592000; // 30 days | ||
| + | $dirhandle = opendir(' | ||
| + | while($fileclean = readdir($dirhandle)) { | ||
| + | if( $fileclean != " | ||
| + | if(filemtime($fileclean) < (time()-$seconds_old) ) { | ||
| + | unlink($fileclean); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | header(' | ||
| + | exit; | ||
| + | } | ||
| ?> | ?> | ||
| </ | </ | ||
| - | Pour passer les avatars Wordpress, envoyez ce fichier dans le dossier des extensions et activez-le: | + | Pour passer les avatars Wordpress, envoyez ce fichier dans le dossier des extensions et activez-le |
| <file php gravatar.php> | <file php gravatar.php> | ||
| <?php | <?php | ||
| Ligne 81: | Ligne 113: | ||
| if ( !empty($email) ) | if ( !empty($email) ) | ||
| $email_hash = md5( strtolower( $email ) ); | $email_hash = md5( strtolower( $email ) ); | ||
| - | $return = '<a href=" | + | $return = '<a href=" |
| return $return; | return $return; | ||
| } | } | ||
| ?> | ?> | ||
| + | </ | ||
| + | |||
| + | OPTIONNEL: vous pouvez placer le script suivant dans votre dossier de gravatars, il crée une galerie en supprimant les gravatars trop anciens: | ||
| + | <file php index.php> | ||
| + | <? | ||
| + | // delete gravatars older than 30 days | ||
| + | $seconds_old = 2592000; | ||
| + | $dirhandle = opendir(' | ||
| + | while($fileclean = readdir($dirhandle)) { | ||
| + | if( $fileclean != " | ||
| + | if(filemtime($fileclean) < (time()-$seconds_old) ) { | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | /*cache*/ | ||
| + | $cache = ' | ||
| + | $expire = time() -60000 ; // galery cached for 16 hours | ||
| + | $expire_gravatar = time() -10 ; | ||
| + | | ||
| + | else | ||
| + | { ob_start(); | ||
| + | ?> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <style type=" | ||
| + | <!-- | ||
| + | body { font-size: | ||
| + | a { font-weight: | ||
| + | --> | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | Listing généré: <?php echo date(" | ||
| + | <?php | ||
| + | $directory = " | ||
| + | $files = glob($directory . " | ||
| + | foreach($files as $file) | ||
| + | { | ||
| + | if (preg_match("/ | ||
| + | else if (preg_match("/ | ||
| + | else {echo '<a href=" | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | <?php | ||
| + | $tampon = ob_get_contents(); | ||
| + | ob_end_clean(); | ||
| + | file_put_contents($cache, | ||
| + | echo $tampon; } ?> | ||
| </ | </ | ||
php/cache_gravatar.1341179010.txt.gz · Dernière modification : (modification externe)
