Herkese selam,
Yeni bir sorunum vardı. Veritabanına uzun JSON veri girişi eklemek zorunda kaldım. Ancak bu daha sonraki zamanlarda büyük bir depolama sorununa dönüşüyor. Sonra kendi kendime sordum, neden JSON'u sıkıştırmadan ekliyorum?
Örnek boyutlarını görebilirsiniz.
gzcompress çıktısı:
xڋ�RP�b�p%+%��T%����7P(̃�����:��u���~��H:PuAmq Y㔚Z���*�����5��30@���!l�[~~
آ��6�@�'�hF�h0��� EkJ��5�u���%�� ��qJ-��B�l`� �ӣ���G��x}IDq�/=z%楖�#A��)}��Ӓ�����f>L�[���v~�~Z#�B�����
base64_encode(gzcompress()):
eNqL5lJQqAZiBQWlcA9/JSsFJa/8VCUdqIirqzdQKBrMg6kDy/iF+jq5BgHljHUQgq4RAa5+wa5IOlB1QW1xDAFZ45SaWqSkgyrn6Osf6geSNbTQMzBAkqvVIWygW35+Cm4DjahtoCXpBjon4vaxkQGaeXB2LBeaDdiiwYQ20UCGJ/EbaEbtaDAfBAbi97IJRRFrSpuINaF1/sL0JReMB7YMtcxxSi3JGPhCx2xgsiCd06PpwKRHqhfPeH1JRHGKLz16JealltAjQeKrEsgpffGHsgW105LFwOQYvKFmPkzKW7yepHZ+oX5aI6VC4IrlAgAOj9SF
Örnekler
FoodMenu Örneği
<?php
$sampleData = file_get_contents('https://sercankara.xyz/samples/foodMenu.json');
$withBase64encode = base64_encode(gzcompress($sampleData, 9));
$withOutBase64encode = gzcompress($sampleData, 9);
echo 'pure data: ';
echo mb_strlen($sampleData, '8bit');
echo "\n";
echo 'with base64_encode: ';
echo mb_strlen($withBase64encode, '8bit');
echo "\n";
echo 'without base64_encode: ';
echo mb_strlen($withOutBase64encode, '8bit');
Sonuç
pure data: 2696
with base64_encode: 328
without base64_encode: 246
Photos Örneği
<?php
$sampleData = file_get_contents('https://sercankara.xyz/samples/photos.json');
$withBase64encode = base64_encode(gzcompress($sampleData, 9));
$withOutBase64encode = gzcompress($sampleData, 9);
echo 'pure data: ';
echo mb_strlen($sampleData, '8bit');
echo "\n";
echo 'with base64_encode: ';
echo mb_strlen($withBase64encode, '8bit');
echo "\n";
echo 'without base64_encode: ';
echo mb_strlen($withOutBase64encode, '8bit');
Sonuç
pure data: 951473
with base64_encode: 170940
without base64_encode: 128205
Bu karakterleri ����� görmek istemiyorsanız. base64_encode kullanmanız gerekir. Ancak birkaç alan kaybedersiniz.
Comments