![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Помогите, пожалуйста!
Я наткнулся на сайт в котором есть gzip сжатие страниц, а также скрипт который показывал за сколько секунд генерировалась эта страница… а самое главное это то, что сайт показывал в процентах на сколько сжата страница, выводил инфо о реальном размере страницы в Кb и в жатом (Кb)… также сайт суммировал трафик… слаживая результаты сжатой страницы… Помогите реализовать такой скрипт, я только начинаю изучать PHP и для меня это очень трудно… Буду рад всем советам! |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Даже на этом сайте в самом низу есть частичка нужного мне скрипта:
[ Время генерации скрипта: 1.2595 ] [ Использовано запросов: 29 ] [ GZIP включён ] |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Помогите разоббаться с приведённым ниже скриптом...
В нём вроде ошибка но какая я не пойму... этот скрипт включал сжати страниц и в куке подсчитывал трафик! Помогите запустить скрипт... и если возможно то и написать комментарии к приведённому ниже скрипту. <? Error_Reporting(E_ALL & ~E_NOTICE); Error_Reporting (ERROR | WARNING); session_name("SESID"); session_start(); ob_start('ob_gzhandler'); $Contents = ob_get_contents(); $gzib_file = strlen($Contents); $gzib_file_out = strlen(gzcompress($Contents,3)); $gzib_pro=round(100-(100/($gzib_file/$gzib_file_out)),1); $traf = $gzib_file_out + $_SESSION['traf']; $_SESSION['traf'] = $traf; $traf_kb = round($traf / 1024, 1); echo 'GZIP сжатие включено - трафик: '.$traf_kb.' KB'; ?> |
|||
|
||||
| Котокобра |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.11.2009 Репутация: нет Всего: 4 |
Ну подсчитать время выполнения скрипта не сложно. Надо засечь время в самом начала скрипта и снять значение в самом конце. Разницу вывести.
Объем страницы тоже можно посчитать, если запихнуть ее в переменную и померить ее длину. А вот насчет архивации не понятно. Браузер не производит разархивирование, клиенту отправляется сверстанный html. Если только передача по xml, которая разархивируется на клинетской машине с помощью скрипта. |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
это всё просто на словах... а вот как программу написать это не понятно... |
|||
|
||||
| Котокобра |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.11.2009 Репутация: нет Всего: 4 |
savmp,
это прикол такой, да?
|
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
А как выглядит отдельно код генерации страницы?
И как выводить информацию не в виде 3.00407409668E-5 а в виде (Генерация страницы: 0.0168 сек.) И в этом скрипте указывается не сумма трафика страниц а просто размер файла... Не легче узнать размер страницы через такой скрипт: <? $filesize = filesize ('index.php'); $filesize = $filesize / 1024; echo round ($filesize, 2); ?> Kb |
|||
|
||||
| Котокобра |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.11.2009 Репутация: нет Всего: 4 |
print "hello"; будет выведено "hello". Страница же подразумевает всякие служебные теги, типа хидера, контента, стилей и др. Мы их можем выводить в поток между строк скрипта, либо сначала сложить в переменную, потом разом вывести, как и было проделано. То бишь $htm = "hello"; print $htm; эквивалентно print "hello"; пояснение: print <<< HERE hello HERE; тоже самое, эквивалентно print "hello"; Соответственно, "код генерации страницы" это условное обозначение, означающее тот контент, который будет выведен в качестве содержимого страницы. Это вывод осуществляется функцией print. Т.е. то, что передано функции принт, получит бразузер, и ничего другого.
E-5 означает -5 степень, т.е. это должно было бы выглядить так: 0.0000300407409668 Столько нулей перед значащими цифрами обычно не выводятся, запись сокращается до того вида, который был представлен. Чтобы это изменить в отображении, надо еще что-нибудь писать. Ну или покопать справочники. На счет трафика Вы верно описали: она должна заноситься в куки, и суммироваться. filesize ('index.php') - это размер файла скрипта, а не контента, который он формирует. Например, цикл for ($i=0;$i<1000;$i++){ $cnt .= "1"; } занимает 43 байта, а содержание переменной на выходе из цикла составит 1000 байт. Ну вроде все по вашим вопросам... Это сообщение отредактировал(а) Котокобра - 18.1.2010, 22:57 |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
А как реализовать скрипт примерно с такой идеей:
1. определяем размер страницы 2. включаем GZIP сжатие на странице и определяем какой размер у принятых сжатых файлов 3. выводим информацию (размер страницы) и (размер принятых сжатых файлов) 4. определяем процент сжатия страницы методом (результат размера принятых сжатых файлов) умножаем на 100 и делим на (результат размера страницы) получаем с округлением до 2 знака результат в процентах. 5. (результат размера принятых сжатых файлов) заносим сессию или в кук (я не знаю как лучше) а при дркгом обновлении страницы или переходе на другую мы (результат размера принятых сжатых файлов) прибавляем к той цифре которая у нас в куке или сессии и выводим результат в виде: Ваш трафик: 12**7 Kb Мне просто мои знания php не позволяют такой скрипт написать :-( |
|||
|
||||
| Котокобра |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.11.2009 Репутация: нет Всего: 4 |
Не работал со сжатием.
Видимо, контент передается архиватору, и клиенту выдается сразу сжатая страница. Наверное, ее размер вычисляется также, через длину строки, а вот функцию, которая осущствляет gzip-сжатие, я не знаю. Так что пока у меня все |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
ob_gzhandler()
предназначена для использования в качестве callback-функции для ob_start(), чтобы облегчить отправку gz-кодированных данных web-браузерам, поддерживающим сжатие web-страниц. Прежде чем ob_gzhandler() отправит сжатые данные, она определяет, какой тип кодирования содержимого принимает браузер ("gzip", "deflate" или вообще никакое), и возвратит его содержимое соответствующим образом. Поддерживаются все браузеры, отправляющие корректную шапку/header о том, что они принимают сжатые web-страницы. |
|||
|
||||
| Котокобра |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.11.2009 Репутация: нет Всего: 4 |
savmp, ну а где тот файл, который подключается? Идея-то конечно проста, сложно разобраться в подключаемых функциях.
|
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Скрипт генерации страницы я думаю пойдёт и такой...
вставляем это в самое начало страницы: <? $start = microtime (); $start_array = explode (" ",$start); $start = $start_array[1] + $start_array[0]; ?> а это вставляем это в самый конец страницы: <? $finish = microtime (); $finish_array = explode (" ", $finish); $finish = $finish_array[1] + $finish_array[0]; $time = $finish - $start; printf ("Генерация страницы: %f SEC", $time); ?> результат примерно такой: Генерация страницы: 0.001560 SEC Добавлено через 2 минуты и 56 секунд Блин.... Я просто жалею, что мои знания php не позволяют мне писать скрипты! :-( Мне нужен этот скрипт....
сейчас и на будущее нужен... |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
Блин ...
$time_start = microtime(true); Безо всякого explode. Я надеюсь не с 4 версией работаешь. Честно говоря сомневаюсь что возможен подсчёт процентов сжатия. Как подсчитать длину несжатой странички? |
|||
|
||||
| savmp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
IgorIV спасибо, что подсказал: $time_start = microtime(true);
Я просто плохо разбираюсь в PHP кстати я нашёл сайт на котором отображается процент сжатия страницы выглядит это так: Сжатие: 66.2% 0.0073 сек. в самом низу сайта! вот этот сайт? http://visavi.net/index.php? |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |