用户之前在发烧网参加的上传图片活动都没有经过无损压缩处理.想用脚本对一月内传上去的图片进行处理,但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>?>

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自動化intifications andMarketingCampaigns.1)設置設置yourphpenvenvironnvironnvironmentwithaweberswithawebserverserververandphp,確保themailfunctionisenabled.2)useabasicscruct

發送電子郵件的最佳方法是使用PHPMailer庫。 1)使用mail()函數簡單但不可靠,可能導致郵件進入垃圾郵件或無法送達。 2)PHPMailer提供更好的控制和可靠性,支持HTML郵件、附件和SMTP認證。 3)確保正確配置SMTP設置並使用加密(如STARTTLS或SSL/TLS)以增強安全性。 4)對於大量郵件,考慮使用郵件隊列系統來優化性能。

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

使用PHP和SMTP發送郵件可以通過PHPMailer庫實現。 1)安裝並配置PHPMailer,2)設置SMTP服務器細節,3)定義郵件內容,4)發送郵件並處理錯誤。使用此方法可以確保郵件的可靠性和安全性。

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

使用依賴注入(DI)的原因是它促進了代碼的松耦合、可測試性和可維護性。 1)使用構造函數注入依賴,2)避免使用服務定位器,3)利用依賴注入容器管理依賴,4)通過注入依賴提高測試性,5)避免過度注入依賴,6)考慮DI對性能的影響。

phpperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovessetimes.2)優化

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。