{"id":26097,"date":"2021-06-20T13:56:00","date_gmt":"2021-06-20T10:56:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26097"},"modified":"2021-10-17T20:14:38","modified_gmt":"2021-10-17T17:14:38","slug":"pakkaa-kuvat-verkkosivustolle-kayttamalla-resmush-it-ohjelmaa-php-ssa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/pakkaa-kuvat-verkkosivustolle-kayttamalla-resmush-it-ohjelmaa-php-ssa\/","title":{"rendered":"Pakkaa kuvat verkkosivustolle k\u00e4ytt\u00e4m\u00e4ll\u00e4 reSmush.it-ohjelmaa PHP: ss\u00e4"},"content":{"rendered":"<p>L\u00e4hetetty <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>Kuvat tekev\u00e4t verkkosivustostasi kauniin ja lis\u00e4\u00e4v\u00e4t vierailijoille parempaa k\u00e4ytt\u00f6kokemusta. Kuvat voivat kuitenkin vaikuttaa my\u00f6s sivuston suorituskykyyn ja tekev\u00e4t sivustosi nopeudesta mielett\u00f6m\u00e4n hidasta. Ja me kaikki tied\u00e4mme, ett\u00e4 hitaammat verkkosivustot eiv\u00e4t voi menesty\u00e4 Internetiss\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa n\u00e4ytet\u00e4\u00e4n, kuinka pakataan kuvia verkkosivustoille k\u00e4ytt\u00e4m\u00e4ll\u00e4 reSmush.it-ohjelmaa PHP: ss\u00e4. T\u00e4m\u00e4n palvelun k\u00e4ytt\u00e4j\u00e4t voivat pienent\u00e4\u00e4 verkkosivuston kuvien kokoa. Se auttaa parantamaan sivun nopeutta. ReSmush.it on ilmainen kuvakompressority\u00f6kalu. K\u00e4ytt\u00e4j\u00e4 voi pakata niin monta kuvaa kuin haluaa. Kuvien lukum\u00e4\u00e4r\u00e4lle ei ole t\u00e4llaista rajoitusta.<\/p>\n<p>T\u00e4m\u00e4n artikkelin kirjoittamisen aikana <a href=\"https:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it<\/a> pakkaa toistaiseksi yli 7 miljardia kuvaa ja laskee edelleen. T\u00e4m\u00e4 numero osoittaa, ett\u00e4 se on melko suosittu palvelu k\u00e4ytt\u00e4jien keskuudessa.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Luodaan yksinkertainen lomake, johon k\u00e4ytt\u00e4j\u00e4 voi ladata kuvan. Kun l\u00e4het\u00e4t kuvan, PHP: n avulla l\u00e4het\u00e4mme kuvan reSmush.it-palveluihin ja saamme kuvan optimoidun version.<\/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=\"image\" accept=\"image\/*\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>T\u00e4\u00e4ll\u00e4 lis\u00e4simme tiedoston sy\u00f6tt\u00f6- ja l\u00e4hetyspainikkeen. K\u00e4ytimme my\u00f6s m\u00e4\u00e4ritett\u00e4, <code>accept=\"image\/*\"<\/code>jonka avulla voit valita vain kuvatiedostot.<\/p>\n<h3>Pakkaa kuvat verkkosivustolle PHP: ss\u00e4<\/h3>\n<p>Nyt meid\u00e4n on oltava vuorovaikutuksessa reSmush.it-sovellusliittym\u00e4n kanssa. Aiomme kirjoittaa koodin, joka suorittaa seuraavat vaiheet.<\/p>\n<ul>\n<li>L\u00e4het\u00e4 kuva palvelimellemme.<\/li>\n<li>L\u00e4het\u00e4 ladattu kuva reSmush.it-sovellusliittym\u00e4n p\u00e4\u00e4tepisteeseen.<\/li>\n<li>Vastaanottaa optimoidun kuvan polun.<\/li>\n<li>S\u00e4ilyt\u00e4 t\u00e4m\u00e4 optimoitu versio palvelimellamme korvaamalla alkuper\u00e4inen kuva.<\/li>\n<\/ul>\n<p>Ennen kuin jatkat, varmista, ett\u00e4 olet ottanut cURL-laajennuksen k\u00e4ytt\u00f6\u00f6n palvelimellasi.<\/p>\n<pre><code>&lt;?php\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/allowed file types\n\u00a0\u00a0\u00a0\u00a0$arr_file_types = ['image\/png', 'image\/gif', 'image\/jpg', 'image\/jpeg'];\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!(in_array($_FILES['image']['type'], $arr_file_types))) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0die('Only image is allowed!');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists('uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir('uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['image']['tmp_name'], 'uploads\/'. $_FILES['image']['name']);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ optimize image using reSmush.it\n\u00a0\u00a0\u00a0\u00a0$file = getcwd(). '\/uploads\/'. $_FILES['image']['name'];\n\u00a0\u00a0\u00a0\u00a0$mime = mime_content_type($file);\n\u00a0\u00a0\u00a0\u00a0$info = pathinfo($file);\n\u00a0\u00a0\u00a0\u00a0$name = $info['basename'];\n\u00a0\u00a0\u00a0\u00a0$output = new CURLFile($file, $mime, $name);\n\u00a0\u00a0\u00a0\u00a0$data = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"files\" =&gt; $output,\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, 'http:\/\/api.resmush.it\/?qlty=80');\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POST,1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\n\u00a0\u00a0\u00a0\u00a0$result = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0if (curl_errno($ch)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$result = curl_error($ch);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0curl_close ($ch);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_result = json_decode($result);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ store the optimized version of the image\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init($arr_result-&gt;dest);\n\u00a0\u00a0\u00a0\u00a0$fp = fopen(getcwd(). '\/uploads\/'. $name, 'wb');\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_FILE, $fp);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_HEADER, 0);\n\u00a0\u00a0\u00a0\u00a0curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0curl_close($ch);\n\u00a0\u00a0\u00a0\u00a0fclose($fp);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0echo \"File uploaded successfully.\";\n}\n?&gt;<\/code><\/pre>\n<p>Yll\u00e4 olevassa koodissa asetin suositellun laatuarvoksi 80. Voit s\u00e4\u00e4t\u00e4\u00e4 t\u00e4m\u00e4n numeron suuremmaksi tai pienemm\u00e4ksi. Tallennamme kuvia <code>uploads<\/code>hakemistoon. Sinun tapauksessasi voit s\u00e4\u00e4t\u00e4\u00e4 t\u00e4t\u00e4 hakemistoa.<\/p>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuinka pakata kuvia verkkosivustolle PHP: ss\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 reSmush.it-tiedostoa. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/tinypng-pakkaa-kuvat-php-lla\/\" title=\"TinyPNG Pakkaa kuvat PHP: ll\u00e4\">TinyPNG Pakkaa kuvat PHP: ll\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-ja-pakata-kuvia-laravelissa\/\" title=\"Opas kuvien lataamiseen ja pakkaamiseen Laravelissa\">Opas kuvien lataamiseen ja pakkaamiseen Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuvan-optimointi-artisansweb-image-optimizer-paketilla\/\" title=\"Kuvan optimointi artisansweb \/ image-optimizer -paketilla\">Kuvan optimointi artisansweb \/ image-optimizer -paketilla<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4mme, kuinka pakata kuvia verkkosivustolle, mik\u00e4 nopeuttaa verkkosivustoasi. Se parantaa sivuston suorituskyky\u00e4 ja lis\u00e4\u00e4 paremman k\u00e4ytt\u00e4j\u00e4n ..<\/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":[275],"tags":[843],"class_list":["post-26097","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/26097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=26097"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/26097\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=26097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=26097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=26097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}