gZip — сжатие данных на PHP

Понедельник, 19 Апр 2010 9:35

Многие браузеры поддерживают gzip сжатые файлы в "прозрачном" для пользователя режиме. Для текстовых файлов (html страниц) коэффициент сжатия этим методом составляет 0.2-0.3, т.е. данные сжимаются в 3-5 раз (на больших файлах — больше), что даёт такое же ускорение закачки страницы при других равных условиях.

Что снижает эффективность использования сжатия данных. Эффект от сжатия снижается, если вы используете много графики (gif, jpeg, png), flash (swf), других мультимедиа. Но если большинство данных у вас текстовые и ХТМЛ страница занимает более 50кб — смело используйте сжатие. Эффект от использования сжатия снижается также при использовании современных модемных протоколов.

Вот что говорят их производители: Протоколы сжатия данных (v.44/v.42 bis/mnp 5) и коррекции ошибок (v.42/mnp 2-4) поддерживаются для максимизации пропускной способности и проверки целостности передачи. v.44 более эффективный метод сжатия чем v.42 bis, что существенно увеличивает возвратную пропускную способность и таким образом, уменьшая время закачки для типов файлов, используемых в Интернет, таких как Web-страницы и несжатая графика, аудио, документы. Сжатие по протоколу v.44 может достигать уровня более чем на 25% эффективнее чем v.42bis. Типичный коэффициент сжатия для v.44 на Веб-страницах около 6-1, что в конечном итоге дает пропускную способность до 300 kbps для 56-kbps соединений. Поэтому эффект во времени загрузки может быть не совсем ощутимый. Тем не менее использование сжатия данных оправдано. Во-первых, алгоритм gzip более эффективный аппаратного сжатия данных (он всего на 17% уступает rar-формату и на 2% — zip), в большей части благодаря тому, что вы сжимаете весь файл целиком, а модем — только текущие пакеты. Во-вторых, суммарная пропускная способность канала всегад меньше наиболее его "тонкого" места, т.е. если на какой то стадии используется более старый протокол, эффекта от аппаратного сжатия конечный пользователь не получит.

Читать полностью »

Теги: , ,

Делаем Человеко Понятные Урлы (ЧПУ) с помощью mod_rewrite

Четверг, 25 Мар 2010 11:30

Так как преобразование в ЧПУ осуществляется с помощью регулярных выражений, а это целый язык, требующий изучения, то в этой статье хотел бы рассказать о самым популярных форматах преобразования. Но сначала немного теории.

Mod_rewrite — мощный Apache-модуль, который входит в состав дистрибутива. Как же происходит замена URL? Работа модуля осуществляется по принципу «на лету». То есть когда пользователь обращается по ЧПУ-адресу, модуль сразу же проверяется адрес, который замаскирован под ЧПУ, и обращается к ниму. Естественно, посетитель этих манипуляций не замечает и ему кажется, что он обратился по адресу, который ввёл в адресную строку браузера. Какие же преимущества имеют ЧПУ-адреса?

  • Более приятен для посетителей, так как адрес лучше запоминается.
  • Безопасность, так как посетитель не знает реального адреса.
  • ЧПУ, содержащие название статьи, лучше для SEO

Читать полностью »

Распаковываем ZIP архив на FTP сервере

Четверг, 18 Мар 2010 13:18

Это небольшая серверная утилита, написанная на PHP, которая способна распаковывать и запаковывать ZIP архивы прямо на сервере. Каждый вебмастер хоть раз в жизни да столкнулся с такой проблемой, когда программных файлов проекта много и их долго заливать на сервер каждый по отдельности. С этой штучкой вы сэкономите кучу времени и трафика, т.к. обычно текстовые документы сжимаются очень хорошо.
Совет – переименуйте файл index.php (он в архиве) например на packzip.php, т.к. скорее всего файл index.php уже существует на вашем сервере.

Установка: скопируйте файлы на сервак, запустите файл index.php, зарегите нового пользователя (программа создаст БД в файл) и авторизуйтесь, ну а дальше как по маслу – вы видите перед собой нечто типа total commander (две колонки с файлами), находите архив и распаковываете его.

По идее если у вас панель на хостинге cPanel, DerictAdmin или другая, то каждая панель включает файловый менеджер, который так же оперирует архивами ZIP.

Читать полностью »

Интеграция KCAPTCHA в модуль обратной связи для Joomla 1.5.x

Четверг, 18 Мар 2010 13:00

logo Joomla настолько демократичная cms, что в базовый поставке не имеет никакой защиты от спам-ботов, хотя имеет формы ввода данных в которые эти спам-боты могут нагадить. Для избавления от такой напасти будем использовать отечественную разработку под названием KCAPTCHA, написанную на php «для защиты от спама и флуда». В первой части я расскажу об интеграции с компонентом com_user, а во-второй сделаю интеграцию с com_contact. Интеграция будет проделана с Joomla 1.5.x.

Скачаем KCAPTCHA и распакуем архив в директорию «libraries» дистрибутива Joomla.

Теперь приступим к интеграции:

1) В корневом файле Joomla index.php после 17 строки добавим:

BEGIN PATCH KCAPTCHA
session_start();
if(isset($_SESSION[‘captcha_keystring’])&&($_SESSION[‘captcha_keystring’]==$_POST[‘captcha’]))
$_POST[‘captcha’]=1;
else
$_POST[‘captcha’]=0;
session_destroy();
// END PATCH KCAPTCHA

Читать полностью »

CAPTCHA в стандартную форму обратной связи для Joomla 1.0.15

Среда, 10 Мар 2010 19:01

Форма обратной связи в Joomla может легко использоваться для рассылки спама (вместо базы данных электронных адресов спамеру достаточно иметь список сайтов на Joomla).
Чтобы избавиться от этого недуга — внедрим CAPTCHA собственными силами в стандартный компонент контактов.
Для этого будет использоваться скрипт (хотя возможно использовать и аналоги)

1. В файле /components/com_contact/contact.html.php в функцию _writeEmailForm мы добавим показ защитного изображения и поле для ввода (после строки 694):
Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php echo(_EMAIL_A_COPY); ?>
</label>
<?php
}
?>
<!-- НАЧАЛО КОДА -->
<?php session_start(); ?><br />
<img src="/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"
alt="Включите показ картинок в браузере" />
<br />
<label for="contact_captcha">
Введите код с картинки:
</label>
<br />
<input type="text" name="captcha" id="contact_captcha" value="" size="30" maxlength="10" />
<!--КОНЕЦ ДОБАВЛЯЕМОГО КОДА -->
<br />
<br />

Читать полностью »