{"id":29680,"date":"2021-06-20T13:17:00","date_gmt":"2021-06-20T10:17:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29680"},"modified":"2021-10-18T03:30:53","modified_gmt":"2021-10-18T00:30:53","slug":"kompresuj-obrazy-dla-strony-internetowej-za-pomoca-resmush-it-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/kompresuj-obrazy-dla-strony-internetowej-za-pomoca-resmush-it-w-php\/","title":{"rendered":"Kompresuj obrazy dla strony internetowej za pomoc\u0105 reSmush.it w PHP"},"content":{"rendered":"<p>Opublikowany w <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>Obrazy sprawiaj\u0105, \u017ce Twoja witryna jest pi\u0119kna i zapewnia lepsze wra\u017cenia u\u017cytkownik\u00f3w. Jednak obrazy mog\u0105 r\u00f3wnie\u017c wp\u0142yn\u0105\u0107 na wydajno\u015b\u0107 witryny i sprawi\u0107, \u017ce szybko\u015b\u0107 witryny b\u0119dzie szalenie niska. A wszyscy wiemy, \u017ce wolniejsze strony internetowe nie mog\u0105 odnie\u015b\u0107 sukcesu w Internecie.<\/p>\n<p>W tym artykule pokazujemy, jak kompresowa\u0107 obrazy dla stron internetowych za pomoc\u0105 reSmush.it w PHP. Korzystaj\u0105c z tej us\u0142ugi, u\u017cytkownicy mog\u0105 zmniejszy\u0107 rozmiar obraz\u00f3w na swoich stronach internetowych. Pomo\u017ce to w poprawie szybko\u015bci strony. reSmush.it to darmowe narz\u0119dzie do kompresji obrazu. U\u017cytkownik mo\u017ce skompresowa\u0107 dowoln\u0105 liczb\u0119 obraz\u00f3w. Nie ma takiego ograniczenia liczby zdj\u0119\u0107.<\/p>\n<p>W chwili pisania tego artyku\u0142u <a href=\"https:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reSmush.it<\/a> kompresuje do tej pory ponad 7 miliard\u00f3w obraz\u00f3w i wci\u0105\u017c si\u0119 liczy. Ta liczba \u015bwiadczy o tym, \u017ce jest to do\u015b\u0107 popularna us\u0142uga w\u015br\u00f3d u\u017cytkownik\u00f3w.<\/p>\n<h3>Pierwsze kroki<\/h3>\n<p>Stw\u00f3rzmy prosty formularz, w kt\u00f3rym u\u017cytkownik mo\u017ce przes\u0142a\u0107 obraz. Po przes\u0142aniu obrazu za pomoc\u0105 PHP wy\u015blemy obraz do us\u0142ug reSmush.it i otrzymamy zoptymalizowan\u0105 wersj\u0119 naszego obrazu.<\/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>Tutaj dodali\u015bmy plik wej\u015bciowy i przycisk przesy\u0142ania. U\u017cyli\u015bmy r\u00f3wnie\u017c atrybutu, <code>accept=\"image\/*\"<\/code>kt\u00f3ry pozwala wybra\u0107 tylko pliki graficzne.<\/p>\n<h3>Kompresuj obrazy dla strony internetowej w PHP<\/h3>\n<p>Teraz musimy wej\u015b\u0107 w interakcj\u0119 z interfejsem API reSmush.it. Zamierzamy napisa\u0107 kod, kt\u00f3ry wykona nast\u0119puj\u0105ce kroki.<\/p>\n<ul>\n<li>Prze\u015blij obraz na nasz serwer.<\/li>\n<li>Wy\u015blij przes\u0142any obraz do punktu ko\u0144cowego interfejsu API reSmush.it.<\/li>\n<li>Otrzymuje \u015bcie\u017ck\u0119 zoptymalizowanego obrazu.<\/li>\n<li>Przechowuj t\u0119 zoptymalizowan\u0105 wersj\u0119 na naszym serwerze, zast\u0119puj\u0105c oryginalny obraz.<\/li>\n<\/ul>\n<p>Zanim przejdziesz dalej, upewnij si\u0119, \u017ce masz w\u0142\u0105czone rozszerzenie cURL na swoim serwerze.<\/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>W powy\u017cszym kodzie ustawi\u0142em warto\u015b\u0107 jako\u015bci na \u201e80&quot;, co jest zalecane. Mo\u017cesz dostosowa\u0107 t\u0119 liczb\u0119 do mniej wi\u0119cej. Przechowujemy obrazy w <code>uploads<\/code>katalogu. W twoim przypadku mo\u017cesz dostosowa\u0107 ten katalog.<\/p>\n<p>Mam nadziej\u0119, \u017ce rozumiesz, jak skompresowa\u0107 obrazy dla witryny w PHP za pomoc\u0105 reSmush.it. Chcia\u0142bym us\u0142ysze\u0107 wasze przemy\u015blenia i sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/tinypng-kompresuj-obrazy-za-pomoca-php\/\" title=\"TinyPNG Kompresuj obrazy za pomoc\u0105 PHP\">TinyPNG Kompresuj obrazy za pomoc\u0105 PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przesylac-i-kompresowac-obrazy-w-laravel\/\" title=\"Przewodnik po przesy\u0142aniu i kompresowaniu obraz\u00f3w w Laravel\">Przewodnik po przesy\u0142aniu i kompresowaniu obraz\u00f3w w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/optymalizacja-obrazu-za-pomoca-pakietu-artisansweb-image-optimizer\/\" title=\"Optymalizacja obrazu za pomoc\u0105 pakietu artisansweb\/image-optimizer\">Optymalizacja obrazu za pomoc\u0105 pakietu artisansweb\/image-optimizer<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule pokazujemy, jak skompresowa\u0107 obrazy dla witryny, co przyspieszy Twoj\u0105 witryn\u0119. W ten spos\u00f3b poprawisz wydajno\u015b\u0107 witryny i zwi\u0119kszysz liczb\u0119 u\u017cytkownik\u00f3w.<\/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":[277],"tags":[847],"class_list":["post-29680","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29680"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29680\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}