{"id":25495,"date":"2021-06-01T19:42:00","date_gmt":"2021-06-01T16:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25495"},"modified":"2021-10-18T03:06:27","modified_gmt":"2021-10-18T00:06:27","slug":"come-ottimizzare-l-immagine-al-caricamento-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-ottimizzare-l-immagine-al-caricamento-in-php\/","title":{"rendered":"Come ottimizzare l&#8217;immagine al caricamento in PHP"},"content":{"rendered":"<p>Recentemente uno dei lettori mi ha chiesto come ottimizzare le immagini in upload in PHP. Per rispondere alla domanda, ho deciso di scrivere un articolo che mostrer\u00e0 come possiamo ridurre o comprimere le dimensioni del file al momento del caricamento.<\/p>\n<p>Come sviluppatore, il caricamento di file \u00e8 il nostro compito normale. Lo facciamo sempre in modo tradizionale. Usando la funzione integrata <code>move_uploaded_file<\/code>spostiamo le immagini nella directory e le lasciamo cos\u00ec com&#8217;\u00e8. Pensiamo ad alcuni punti come qual \u00e8 la dimensione dell&#8217;immagine caricata? Ci vorr\u00e0 del tempo per caricare questa immagine su un sito web? Posso ottimizzare un&#8217;immagine senza perderne la qualit\u00e0?<\/p>\n<p>Le immagini giocano un ruolo importante nella velocit\u00e0 del sito. Le immagini pesanti rallentano la velocit\u00e0 della pagina che di conseguenza fa perdere pubblico e traffico. Questa situazione non \u00e8 conveniente. Ci impegniamo molto per costruire il pubblico e il traffico. Quindi, come buona pratica, dovresti ottimizzare l&#8217;immagine durante il caricamento.<\/p>\n<p>In questo articolo, utilizzer\u00f2 il servizio <a href=\"https:\/\/tinypng.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG<\/a> per ottimizzare le immagini. Scriveremo un codice per esso in pochi istanti. Nel frattempo, di seguito \u00e8 riportato lo screenshot di tinypng.com per visualizzare la differenza tra l&#8217;immagine originale e quella ottimizzata.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20382-6081e8cbba932.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20382-6081e8cbba932.png\" alt=\"Come ottimizzare l&#039;immagine al caricamento in PHP\" ><\/a><\/p>\n<h3>Usa TinyPNG per ottimizzare l&#8217;immagine al caricamento<\/h3>\n<p>Per iniziare \u00e8 necessario installare la libreria TinyPNG. Installa la libreria utilizzando il comando seguente.<\/p>\n<pre><code>composer require tinify\/tinify<\/code><\/pre>\n<p>Dopo aver installato la libreria, ottieni la tua chiave API dal sito Web di <a href=\"https:\/\/tinypng.com\/developers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TinyPNG<\/a>.<\/p>\n<p><strong>Nota<\/strong>: TinyPNG consente di comprimere 500 immagini gratuitamente al mese. Per pi\u00f9 di 500 immagini devi pagarle. Se stai gestendo un piccolo sito web, questa quota \u00e8 sufficiente.<\/p>\n<p>Una volta che sei pronto con la chiave API, iniziamo con il codice. Sto creando un semplice modulo HTML che contiene input di file e un pulsante di invio.<\/p>\n<pre><code>&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"myfile\" accept=\"image\/*\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" name=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Quando gli utenti caricano un&#8217;immagine utilizzando questo modulo, gli sviluppatori scrivono il tipo di codice seguente per spostare l&#8217;immagine caricata sul server.<\/p>\n<pre><code>if (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$allowed_mime_types = array('image\/gif', 'image\/jpg', 'image\/jpeg', 'image\/png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Invalid file format.';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists(getcwd().'\/uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(getcwd().'\/uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$src_file_name = $_FILES['myfile']['name'];\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully\";\n}<\/code><\/pre>\n<p>Il codice sopra \u00e8 corretto e non c&#8217;\u00e8 nessun problema tranne la parte mancante dell&#8217;ottimizzazione dell&#8217;immagine. Per ottimizzare le immagini, devi solo aggiungere 2 righe di codice dopo l&#8217; <code>move_uploaded_file<\/code>istruzione.<\/p>\n<pre><code>\/\/optimize image using TinyPNG\n$source = TinifyfromFile(getcwd().'\/uploads\/'.$src_file_name);\n$source-&gt;toFile(getcwd().'\/uploads\/'.$src_file_name);<\/code><\/pre>\n<p>Le 2 righe precedenti prendono un&#8217;immagine dal percorso di origine, la ottimizzano con la libreria TinyPNG senza perdere qualit\u00e0 e la salvano nello stesso percorso di origine. In altre parole, sostituisce l&#8217;immagine originale con la versione ottimizzata.<\/p>\n<p>Il nostro codice finale \u00e8 il seguente.<\/p>\n<pre><code>&lt;?php\nrequire_once(\"vendor\/autoload.php\");\n\u00a0\nTinifysetKey(\"TINYPNG_API_KEY\"); \/\/pass your actual API key\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$allowed_mime_types = array('image\/gif', 'image\/jpg', 'image\/jpeg', 'image\/png');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Invalid file format.';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists(getcwd().'\/uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(getcwd().'\/uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$src_file_name = $_FILES['myfile']['name'];\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/optimize image using TinyPNG\n\u00a0\u00a0\u00a0\u00a0$source = TinifyfromFile(getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\u00a0\u00a0\u00a0$source-&gt;toFile(getcwd().'\/uploads\/'.$src_file_name);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully.\";\n}\n?&gt;\n&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"myfile\" accept=\"image\/*\" required \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" name=\"submit\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Vai avanti e provalo. Dovresti vedere la versione ottimizzata dell&#8217;immagine archiviata nella tua directory.<\/p>\n<p>Spero che tu capisca come ottimizzare l&#8217;immagine durante il caricamento in PHP. Mi piacerebbe sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/tinypng-comprimi-le-immagini-usando-php\/\" title=\"TinyPNG Comprimi le immagini usando PHP\">TinyPNG Comprimi le immagini usando PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/carica-e-comprimi-piu-immagini-in-php\/\" title=\"Carica e comprimi pi\u00f9 immagini in PHP\">Carica e comprimi pi\u00f9 immagini in PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-e-comprimere-immagini-in-laravel\/\" title=\"Una guida per caricare e comprimere immagini in Laravel\">Una guida per caricare e comprimere immagini in Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo, ti mostro come ottimizzare l&#8217;immagine al caricamento in PHP utilizzando la libreria TinyPNG. Le immagini giocano un ruolo molto importante nel sito web.<\/p>\n","protected":false},"author":1,"featured_media":21612,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[276],"tags":[846],"class_list":["post-25495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=25495"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25495\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=25495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=25495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=25495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}