PHP Html Gzip sıkıştırma html minify

Hepinize merhabalar bugün sizlerle nasıl php html gzip yani html sıkıştırma işlemi php ile yapılır onu göstereceğim

Neden HTML GZIP yapmalıyız ?

Sistemlerimiz büyükçe dosya boyutları o denli büyüyor. Dosya boyutu her bir kullanıcı siteye girdiğinde dosya boyutunu trafiginizden yer bu yüzden ne kadar küçük boyutlu dosyalarınız olursa hem yüklenme süresi hem de trafik kullanımı epey düşecektir. Örneğin ana sayfamız da 20 adet blog içeriğini veri tabanımızdan çekelim ve gzip yapmadan önce sayfamızı tarayıcı üzerinden farklı kaydet diyerek dosya boyutumuza bakalım. Biz sizin yerinize yaptık =). Sıkıştırma olmadan önceki hali 24 kb. Ve Php kodlarımızı dahil edip dosya boyuna tekrar bakalım.

Sizin İçin Önerimiz

PHP AJAX Çoklu dosya Yükleme

PHP ile HTML GZİP Nasıl Yapılır ?

Öncelikle size tavsiyem bu kodu her sayfaya ayrı ayrı yazmak yerine function.php dosyası oluşturup bunu sisteme include ile dahil etmek

function.php

<?php
$gzip_pres = true;

    function gzipKontrol(){
        $kontrol = str_replace(" ","",
            strtolower($_SERVER['HTTP_ACCEPT_ENCODING'])
        );
        $kontrol = explode(",", $kontrol);
        return in_array("gzip", $kontrol);
    }

    function bosluksil($kaynak){
        return preg_replace("/\s+/", " ", $kaynak);
    }

    function kaynak_presle($kaynak){
        global $gzip_pres;
        $sayfa_cikti = bosluksil($kaynak);
        if (!gzipKontrol() || headers_sent() || !$gzip_pres) 
            return $sayfa_cikti;
        header("Content-Encoding: gzip");
        return gzencode($sayfa_cikti);
    } 
?>

Ve şimdi sıkıştırmak istediğimiz sayfalarda bu kodu çağırıp ob_start ile başlatıyoruz.

<?php 
     include "function.php";
     ob_start("kaynak_presle");
?>

Kod bloğumuz bu kadar. Arasındaki farkı Sayfa Kaynağı Görüntüle İle Rahatlıkla görebilirsiniz.

# Sonuç #

Sonuç olarak daha hızlı web sitesi, mutlu kullanıcı ve mutlu sunucu =)

2022 PHP AJAX Çoklu Dosya Yükleme (Progressbar % )

Hepinize merhabalar PHPDESTEK.COM ‘un sizin için hazırlamış olduğu PHP ve AJAX kullanarak çoklu dosya yükleme dersine hoş geldiniz. Bunu yaparken de Progress Bar kullanarak yüzdesini kullanıcılara sunacağız.

Sizin için Önerimiz

PHP AJAX İLE ETİKET SİSTEMİ

Hadi Başlayalım php ajax bootstrap

Öncelikle Bootstrap 5 sınıfını sistemimize ekliyoruz. ardından da form ile input=file oluşturup script sınıfımızı yazmaya başlıyoruz.

İndex.php

<!doctype html>
<html lang="en">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!-- Bootstrap CSS -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

        <title>Multiple File Upload with Progress Bar using JavaScript & PHP</title>
    </head>
    <body>

        <div class="container">
            <h1 class="mt-3 mb-3 text-center">Multiple File Upload with Progress Bar using JavaScript & PHP</h1>

            <div class="card">
                <div class="card-header">Select File</div>
                <div class="card-body">
                    <table class="table">
                        <tr>
                            <td width="50%" align="right"><b>Select File</b></td>
                            <td width="50%">
                                <input type="file" id="select_file" multiple />
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
            <br />
            <div class="progress" id="progress_bar" style="display:none; ">

                <div class="progress-bar" id="progress_bar_process" role="progressbar" style="width:0%">0%</div>

            </div>

            <div id="uploaded_image" class="row mt-5"></div>
        </div>
    </body>
</html>

<script>

function _(element)
{
    return document.getElementById(element);
}

_('select_file').onchange = function(event){

    var form_data = new FormData();

    var image_number = 1;

    var error = '';

    for(var count = 0; count < _('select_file').files.length; count++)  
    {
        if(!['image/jpeg', 'image/png', 'video/mp4'].includes(_('select_file').files[count].type))
        {
            error += '<div class="alert alert-danger"><b>'+image_number+'</b> Selected File must be .jpg or .png Only.</div>';
        }
        else
        {
            form_data.append("images[]", _('select_file').files[count]);
        }

        image_number++;
    }

    if(error != '')
    {
        _('uploaded_image').innerHTML = error;

        _('select_file').value = '';
    }
    else
    {
        _('progress_bar').style.display = 'block';

        var ajax_request = new XMLHttpRequest();

        ajax_request.open("POST", "upload.php");

        ajax_request.upload.addEventListener('progress', function(event){

            var percent_completed = Math.round((event.loaded / event.total) * 100);

            _('progress_bar_process').style.width = percent_completed + '%';

            _('progress_bar_process').innerHTML = percent_completed + '% completed';

        });

        ajax_request.addEventListener('load', function(event){

            _('uploaded_image').innerHTML = '<div class="alert alert-success">Files Uploaded Successfully</div>';

            _('select_file').value = '';

        });

        ajax_request.send(form_data);
    }

};

</script>

Sıra geldik upload.php yani işin kalbine

<?php

//upload.php

if(isset($_FILES['images']))
{
	for($count = 0; $count < count($_FILES['images']['name']); $count++)
	{
		$extension = pathinfo($_FILES['images']['name'][$count], PATHINFO_EXTENSION);

		$new_name = uniqid() . '.' . $extension;

		move_uploaded_file($_FILES['images']['tmp_name'][$count], 'images/' . $new_name);

	}

	echo 'success';
}


?>