用户之前在发烧网参加的上传图片活动都没有经过无损压缩处理.想用脚本对一月内传上去的图片进行处理,但Amazon_S3服务集群上只能使用他们提供的一些简单的API.所以只能先down 下来,压缩处理后,再传上去覆盖原来的图片.
经过多次调试,最终写了个php的脚本对之进行处理:详见这里.
代码如下:
<span class="lnum"> 1: </span><?php
<span class="lnum"> 2: </span><span class="kwrd">function</span> compress_img ($source) {
<span class="lnum"> 3: </span> $exts = array(<span class="str">"png"</span>,<span class="str">"bmp"</span>,<span class="str">"gif"</span>,<span class="str">"pnm"</span>,<span class="str">"tiff"</span>);
<span class="lnum"> 4: </span> $start_time = strtotime(<span class="str">"-30 day"</span>);
<span class="lnum"> 5: </span> exec(<span class="str">"s3cmd ls s3://fever38-us-static/hotdeals/{$source}/ > ./tmp.txt"</span>);
<span class="lnum"> 6: </span> $rs = file(<span class="str">'./tmp.txt'</span>);
<span class="lnum"> 7: </span> 
<span class="lnum"> 8: </span> <span class="kwrd">foreach</span>($rs <span class="kwrd">as</span> $line) {
<span class="lnum"> 9: </span> $r = array_filter(explode(<span class="str">' '</span>, $line));
<span class="lnum"> 10: </span> <span class="kwrd">if</span>(!empty($r[0])){
<span class="lnum"> 11: </span> $r[0] = trim($r[0]);
<span class="lnum"> 12: </span> $time = strtotime($r[0]);
<span class="lnum"> 13: </span> }
<span class="lnum"> 14: </span> <span class="kwrd">if</span>(!empty($time) && $time >= $start_time){
<span class="lnum"> 15: </span> <span class="kwrd">if</span>(!empty($r[10])){
<span class="lnum"> 16: </span> $img = trim($r[10]);
<span class="lnum"> 17: </span> $path_info = pathinfo($r[10]);
<span class="lnum"> 18: </span> $ext = trim($path_info[<span class="str">"extension"</span>]);
<span class="lnum"> 19: </span> $file_name = strtolower(trim($path_info[<span class="str">"basename"</span>]));
<span class="lnum"> 20: </span> 
<span class="lnum"> 21: </span> exec(<span class="str">"s3cmd get "</span>.$img);
<span class="lnum"> 22: </span> exec(<span class="str">"cp {$file_name} /mnt/heisoo/s3/{$source}/"</span>);
<span class="lnum"> 23: </span> 
<span class="lnum"> 24: </span> <span class="kwrd">if</span> (in_array($ext,$exts)) {
<span class="lnum"> 25: </span> system(<span class="str">"/usr/bin/optipng -o5 "</span>.$file_name);
<span class="lnum"> 26: </span> }
<span class="lnum"> 27: </span> <span class="kwrd">if</span> ($ext == <span class="str">"jpg"</span> || $ext == <span class="str">"jpeg"</span>) {
<span class="lnum"> 28: </span> system(<span class="str">"/usr/bin/jpegoptim -o --strip-all "</span>.$file_name);
<span class="lnum"> 29: </span> }
<span class="lnum"> 30: </span> system(<span class="str">"s3cmd put {$file_name} {$img} --guess-mime-type --add-header 'Cache-Control:max-age=31536000' --add-header 'Expires: Thu, 01 Dec 2014 16:00:00 GMT' --acl-public"</span>);
<span class="lnum"> 31: </span> unlink($file_name);
<span class="lnum"> 32: </span> }
<span class="lnum"> 33: </span> }
<span class="lnum"> 34: </span> }
<span class="lnum"> 35: </span> 
<span class="lnum"> 36: </span> unlink(<span class="str">'./tmp.txt'</span>);
<span class="lnum"> 37: </span>}
<span class="lnum"> 38: </span> 
<span class="lnum"> 39: </span>compress_img(<span class="str">"promotion_main_pic"</span>);
<span class="lnum"> 40: </span>compress_img(<span class="str">"src_thumb"</span>);
<span class="lnum"> 41: </span>compress_img(<span class="str">"uploadImage"</span>);
<span class="lnum"> 42: </span>compress_img(<span class="str">"dialog_image"</span>);
<span class="lnum"> 43: </span>compress_img(<span class="str">"joinPicture"</span>);
<span class="lnum"> 44: </span>?>

PhpisUsedforsendentemailsDuetoits IntegrationwithServermailServicesAnteralsmtpproviders, automatication etmarkettingcampews.1)

La meilleure façon d'envoyer des e-mails est d'utiliser la bibliothèque PHPMailer. 1) L'utilisation de la fonction Mail () est simple mais peu fiable, ce qui peut entraîner la saisie des e-mails ou ne peut pas être livré. 2) PHPMailer fournit un meilleur contrôle et une meilleure fiabilité, et prend en charge le courrier HTML, les pièces jointes et l'authentification SMTP. 3) Assurez-vous que les paramètres SMTP sont configurés correctement et que le chiffrement (tel que StartTLS ou SSL / TLS) est utilisé pour améliorer la sécurité. 4) Pour de grandes quantités d'e-mails, envisagez d'utiliser un système de file d'attente de courrier pour optimiser les performances.

CustomHedersEndAdvancedFeaturesInphpeMailenhanceFonctionality andreliability.1) CustomHedersAdMetAdataFortrackingandCategorization.2)

L'envoi de courrier à l'aide de PHP et SMTP peut être réalisé via la bibliothèque PHPMailer. 1) Installez et configurez PHPMailer, 2) Définissez les détails du serveur SMTP, 3) Définissez le contenu des e-mails, 4) Envoyer des e-mails et gérer les erreurs. Utilisez cette méthode pour assurer la fiabilité et la sécurité des e-mails.

TheBestApproachforsendentemailsInphpisusingThephpmailerLibraryDuetOtsReliability, featturerichness, andeaseofuse.phpmailersupportssmtp, fournitdetaileDerrorHling

La raison de l'utilisation de l'injection de dépendance (DI) est qu'elle favorise le couplage lâche, la testabilité et la maintenabilité du code. 1) Utiliser le constructeur pour injecter les dépendances, 2) Éviter d'utiliser les localisateurs de services, 3) Utiliser les conteneurs d'injection de dépendance pour gérer les dépendances, 4) Améliorer la testabilité par l'injection des dépendances, 5) Évitez les dépendances de sur-injection, 6) Considérez l'impact des performances de DI.

PhpperformanceTUningiscrucialBecauseiTenHanceSpEedAndEfficiency, qui arevitalforwebapplications.1) cachingwithapruceducesdatabaseloadandixprovesesweponshets.2) OptimizingDatabasequeriesByselectingNesseyColumsAnSingIndexPeedSupSupDatareTelevalin.

ThebestpracticesforsendentemailsSécurelyInphpinclude: 1) usingSECureConfigurations withsmtpandstartTlSencryption, 2) valider andsanitizingInputStopreventInjectiondAttacks, 3) EncrytingSensiveDataWithinemailsusingOpenSSL, 4)


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Dreamweaver Mac
Outils de développement Web visuel

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP
