Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Топ пользователей
Drunya
Репутация: 110
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Материалов в категории:19
1 2
И так, теперь мы знаем как реализовать на сайте простое кэширование, используя PHP. Но это подойдет разве что для гостевой или чего нибудь еще в таком духе. А если у нас в распоряжении сайт со множеством групп пользователей и каждый видит уникальную страницу? Конечно можно просто делать приставку к имени файла в виде названия группы. В таком случае все будет пучком, но если кэш одной страницы весит 5 кб, то теперь, если у нас скажем 10 групп пользователей, кэш этой же страницы будет весить уже 50 кб. И для нормального сайта с 5000 страниц размер кэша может составить 250 000 кб или 250 Мб. Казалось бы не так много, но в реальных условиях все куда хуже и плохо реализованный кэш может завалить вас гигабайтами ненужной информации.

Выход из этого положения - блочное кэширование. Блочное кэширование - это когда мы кэшируем не всю страницу сразу, а отдельные ее элементы. Это также помогает решить нам такие проблемы как разные сроки хранения у разных блоков и предотвращение кэширования нек
Автор: Drunya Раздел: PHP Добавлено: 8 Дек 2010
В этой статье я хотел бы рассказать о принципах кэширования и как его можно осуществить на PHP. Само по себе кэширование позволяет избежать лишней нагрузки на сервер, если это возможно. Представьте ситуацию когда у вас на сайте для формирования страницы делается большое количество SQL запросов и операций, которые используют очень много ресурсов сервера. Если материал на странице не обновлялся, то делать эти запросы и операции каждый раз не зачем, ведь результат один. Вот в таких случаях и используеться кэш. А при обновлении материала он удаляется(очищается) и создается новый. Сейчас я покажу пример самого простого кэша.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
<?php //начинаем буферизацию (все что будет после этой функции не будет выводитсься, а будет сохраняться в буфер)
ob_start();
//далее мы можем делать что угодно, например выводить контент
echo 'Контент страницы';

//теперь забираем все что выводили из буфера и чистим его
$content ob_get_clean();
//теперь сохраняем страницу в файл, это и есть кэш
file_put_c?>
Автор: Drunya Раздел: PHP Добавлено: 7 Дек 2010
Не смотря на то что массивы довольно просты в понимании, многие испытывают трудности при встрече с ними. Именно по этому я решил написать немного о массивах, чтобы развеять тень неизвестности над ними. Могу сказать что массивы это один из тех элементов, без которых вам просто не обойтись в программировании. Они упрощают очень много вещей и позволяют сделать код более читабельным и очевидным, а так же могут с экономить вам время на написание этого кода. Почему? Как? Сейчас все расскажу.

Что такое массив?
Если не задротничать и объяснять понятным языком, то массив - это переменная, содержащая в себе сколько угодно других переменных, а те в свою очередь, тоже могут быть массивами. Таким образом, массив может быть просто гиганских объемов и вмещать в себя очень много информации. А благодаря функциям PHP для работы с массивами, с ними становится очень удобно работать. Сортировать, чистить, находить нужные ключи, перебирать и еще очень много чего:).


[color=gree
Автор: Drunya Раздел: PHP Добавлено: 12 Ноя 2010
Для начала давай выясним что такое bb код. это нечто что позволяет превратить [url ]http://fapos.net[/url] в <a href="http://fapos.net">http://fapos.net</a>. По сути BB коды это просто замена одного текста на другой по определенным правилам.

А теперь давай вспомним какая функция в PHP позволяет делать нам такие замены. Конечно же preg_replace(). Она работает по аналогии с str_replace, только принимает в качестве первого параметра, то есть что менять, регулярное выражение. Круто да? Вот как можно реализовать приведенный в начале пример BB кода при помощи этой функции

 1 
 2 
<?php $message preg_replace("#\[url\](http:\/\/[\w-_\.]*\.{1}\w{2,}[\w-_\/\.\?=]*)\[\/url\]#isU"'<a href="\\1"">\\1</a>'$message);
//метки \\1 обозначают совпавшую часть шаблона, то есть то что было в круглых скобках. В нашем случае это url?>

или пример создания более простого BB кода
 1 
 2 
<?php $message preg_replace("#\[b\](.*)\[\/b\]#isU"'<b>\\1</b>'$message);[/b]?>
Автор: Drunya Раздел: PHP Добавлено: 13 Окт 2010
Сегодня хотелось бы рассказать о том как работать с файлами для начинающих девелоперов. Работать с файлами на PHP довольно просто, если это не требует каких либо дополнительных движений, например блокировки файлов на чтение или чтение и запись и так далее. Хотя и это сделать не сложно, главное правильно выстроить логику приложения.

Для чего это можно использовать
Файлы можно и нужно использовать для всего что достаточно часто используется и занимает не большой объем. Сейчас я объясню что хочу этим сказать. Например у нас есть счетчик написанный на PHP и он при каждом запросе к странице должен увеличивать свое значение на один пункт. Можно написать такой счетчик без использования функций для работы с файлами на PHP. Например использовать базу данных. Но если на ваш сайт заломится сразу 10000 человек и начнут клацать, думаю сайт на обычном хостинге ляжет как миленький. А вот если написать такой функционал с использованием файловой системы, он выдержит и более тяж
Автор: Drunya Раздел: PHP Добавлено: 1 Окт 2010
И так, из предыдущих статей мы уже знаем как посылать запросы, получать данные, формировать заголовки и даже проходить авторизацию при помощи CURL. Но один вопрос все еще открыт. Как автоматизировать процесс? Вот об этом я и хотел написать в этой части статьи. За пример возьмем обычный запрос с использованием библиотеки CURL
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
<?php //устанавливаем что будем посылать
$reguestParams 'var=value&var2=value2';
//инициализируем сеанс
$ch curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($chCURLOPT_HEADER1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$reguestParams);
//делаем запрос
$responseData curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>

Если запрос будет удачным и страница существует, мы получим ее код HTML. Теперь для автоматизации процесса парсинга нам необходимо определиться с тем что
Автор: Drunya Раздел: PHP Добавлено: 30 Сен 2010
В предыдущей статье мы остановились на том что научились получать доступ к страницам удаленных сайтов посредством CURL. Для повторения лишь приведу последний пример.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
<?php //устанавливаем что будем посылать
$reguestParams 'var=value&var2=value2';
//инициализируем сеанс
$ch curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($chCURLOPT_HEADER1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$reguestParams);
//делаем запрос
$responseData curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>

Теперь давайте разберемся как нам получить доступ к странице с авторизацией. Для этого мы должны получить ID сессии и в дальнейшем передавать его при каждом запросе. Это может выглядеть сложно, но на самом деле все намного проще. Сперва мы отправляем POST запрос с логином и паролем, а за тем вытягиваем ID сессии
Автор: Drunya Раздел: PHP Добавлено: 29 Сен 2010
В этой статье реч пойдет о том, что называют граберами или парсерами на PHP. На самом деле я всего лишь раскрою технологию, которая очень проста, а превращать ее в парсер или грабер ваше дело. Как я уже сказал, все очень просто. Давай ка разберем что вообще мы хотим сделать, тогда проще будет понять все остальные телодвижения. Чаще всего нам надо получить текст с другого сайта. Для этого нам нужен исходный код страниц, который можно получить с помощью PHP. Самый простой способ это когда мы знаем адрес нужной страницы и просто получаем ее код, например так

 1 
 2 
<?php $data file_get_contents('http://target.com');?>

Это очень простой способ. Можно скормить скрипту файл с адресами и он их обшарит. В самом скрипте можно вести обработку полученного кода, например вырезать новости или заголовки. Но что делать если сайт требует авторизации или особых заголовков. Сейчас большинство сайтов имеют такую защиту(нормальных сайтов:)). Тогда на на помощь приходит curl. Че за хрень, спросят некот
Автор: Drunya Раздел: PHP Добавлено: 27 Сен 2010
И так, сразу определимся что наш счетчик будет уметь и делать. В этой статье я решил написать ту часть, которая не совсем то и счетчик(о нем я напишу в следующий раз), а скорее скрипт, показывающий кто онлайн. Скрипт будет показывать сколько гостей и сколько пользователей, прошедших авторизацию онлайн.

Так как мы не можем вести контроль в режиме реального времени, нам надо определится в течении какого времени счетчик будет считать пользователя онлайн. Я взял 10 минут...

 1 
 2 
<?php $time_on_line 10;?>

теперь надо подумать о том куда мы будем писать временную информацию. Можно было бы использовать базы данных, но для такой задачи это по меньшей мере не разумно. По-этому мы будем писать в файл. Допустим наш файл для счетчика пользователей онлайн будет называться online.da.
 1 
 2 
<?php $path 'online.da';?>

Теперь код с подробными комментами
 1 
 2 
 3 
<?php $time_on_line 10;
                
$path 'online.da';
               
//два массива, для гостей и пользователей?>
Автор: Drunya Раздел: PHP Добавлено: 23 Сен 2010
1 2
Сейчас online: 8. Зарегистрированных: 0. Гостей: 8.
-->