Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
1 2
И так, теперь мы знаем как реализовать на сайте простое кэширование, используя PHP. Но это подойдет разве что для гостевой или чего нибудь еще в таком духе. А если у нас в распоряжении сайт со множеством групп пользователей и каждый видит уникальную страницу? Конечно можно просто делать приставку к имени файла в виде названия группы. В таком случае все будет пучком, но если кэш одной страницы весит 5 кб, то теперь, если у нас скажем 10 групп пользователей, кэш этой же страницы будет весить уже 50 кб. И для нормального сайта с 5000 страниц размер кэша может составить 250 000 кб или 250 Мб. Казалось бы не так много, но в реальных условиях все куда хуже и плохо реализованный кэш может завалить вас гигабайтами ненужной информации.
Выход из этого положения - блочное кэширование. Блочное кэширование - это когда мы кэшируем не всю страницу сразу, а отдельные ее элементы. Это также помогает решить нам такие проблемы как разные сроки хранения у разных блоков и предотвращение кэширования нек
Выход из этого положения - блочное кэширование. Блочное кэширование - это когда мы кэшируем не всю страницу сразу, а отдельные ее элементы. Это также помогает решить нам такие проблемы как разные сроки хранения у разных блоков и предотвращение кэширования нек
В этой статье я хотел бы рассказать о принципах кэширования и как его можно осуществить на PHP. Само по себе кэширование позволяет избежать лишней нагрузки на сервер, если это возможно. Представьте ситуацию когда у вас на сайте для формирования страницы делается большое количество SQL запросов и операций, которые используют очень много ресурсов сервера. Если материал на странице не обновлялся, то делать эти запросы и операции каждый раз не зачем, ведь результат один. Вот в таких случаях и используеться кэш. А при обновлении материала он удаляется(очищается) и создается новый. Сейчас я покажу пример самого простого кэша.
1
2
3
4
5
6
7
8
9
<?php //начинаем буферизацию (все что будет после этой функции не будет выводитсься, а будет сохраняться в буфер)
ob_start();
//далее мы можем делать что угодно, например выводить контент
echo 'Контент страницы';
//теперь забираем все что выводили из буфера и чистим его
$content = ob_get_clean();
//теперь сохраняем страницу в файл, это и есть кэш
file_put_c?>
3220
0
Работа с массивами в PHP
Не смотря на то что массивы довольно просты в понимании, многие испытывают трудности при встрече с ними. Именно по этому я решил написать немного о массивах, чтобы развеять тень неизвестности над ними. Могу сказать что массивы это один из тех элементов, без которых вам просто не обойтись в программировании. Они упрощают очень много вещей и позволяют сделать код более читабельным и очевидным, а так же могут с экономить вам время на написание этого кода. Почему? Как? Сейчас все расскажу.
Что такое массив?
Если не задротничать и объяснять понятным языком, то массив - это переменная, содержащая в себе сколько угодно других переменных, а те в свою очередь, тоже могут быть массивами. Таким образом, массив может быть просто гиганских объемов и вмещать в себя очень много информации. А благодаря функциям PHP для работы с массивами, с ними становится очень удобно работать. Сортировать, чистить, находить нужные ключи, перебирать и еще очень много чего.
[color=gree
Что такое массив?
Если не задротничать и объяснять понятным языком, то массив - это переменная, содержащая в себе сколько угодно других переменных, а те в свою очередь, тоже могут быть массивами. Таким образом, массив может быть просто гиганских объемов и вмещать в себя очень много информации. А благодаря функциям PHP для работы с массивами, с ними становится очень удобно работать. Сортировать, чистить, находить нужные ключи, перебирать и еще очень много чего.
[color=gree
14475
5
Создаем BB коды на PHP
Для начала давай выясним что такое bb код. это нечто что позволяет превратить [url ]http://fapos.net[/url] в <a href="http://fapos.net">http://fapos.net</a>. По сути BB коды это просто замена одного текста на другой по определенным правилам.
А теперь давай вспомним какая функция в PHP позволяет делать нам такие замены. Конечно же preg_replace(). Она работает по аналогии с str_replace, только принимает в качестве первого параметра, то есть что менять, регулярное выражение. Круто да? Вот как можно реализовать приведенный в начале пример BB кода при помощи этой функции
или пример создания более простого 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]?>
4247
0
Работа с файлами на PHP
Сегодня хотелось бы рассказать о том как работать с файлами для начинающих девелоперов. Работать с файлами на PHP довольно просто, если это не требует каких либо дополнительных движений, например блокировки файлов на чтение или чтение и запись и так далее. Хотя и это сделать не сложно, главное правильно выстроить логику приложения.
Для чего это можно использовать
Файлы можно и нужно использовать для всего что достаточно часто используется и занимает не большой объем. Сейчас я объясню что хочу этим сказать. Например у нас есть счетчик написанный на PHP и он при каждом запросе к странице должен увеличивать свое значение на один пункт. Можно написать такой счетчик без использования функций для работы с файлами на PHP. Например использовать базу данных. Но если на ваш сайт заломится сразу 10000 человек и начнут клацать, думаю сайт на обычном хостинге ляжет как миленький. А вот если написать такой функционал с использованием файловой системы, он выдержит и более тяж
Для чего это можно использовать
Файлы можно и нужно использовать для всего что достаточно часто используется и занимает не большой объем. Сейчас я объясню что хочу этим сказать. Например у нас есть счетчик написанный на PHP и он при каждом запросе к странице должен увеличивать свое значение на один пункт. Можно написать такой счетчик без использования функций для работы с файлами на PHP. Например использовать базу данных. Но если на ваш сайт заломится сразу 10000 человек и начнут клацать, думаю сайт на обычном хостинге ляжет как миленький. А вот если написать такой функционал с использованием файловой системы, он выдержит и более тяж
И так, из предыдущих статей мы уже знаем как посылать запросы, получать данные, формировать заголовки и даже проходить авторизацию при помощи CURL. Но один вопрос все еще открыт. Как автоматизировать процесс? Вот об этом я и хотел написать в этой части статьи. За пример возьмем обычный запрос с использованием библиотеки CURL
Если запрос будет удачным и страница существует, мы получим ее код HTML. Теперь для автоматизации процесса парсинга нам необходимо определиться с тем что
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($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $reguestParams);
//делаем запрос
$responseData = curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>
Если запрос будет удачным и страница существует, мы получим ее код HTML. Теперь для автоматизации процесса парсинга нам необходимо определиться с тем что
В предыдущей статье мы остановились на том что научились получать доступ к страницам удаленных сайтов посредством CURL. Для повторения лишь приведу последний пример.
Теперь давайте разберемся как нам получить доступ к странице с авторизацией. Для этого мы должны получить ID сессии и в дальнейшем передавать его при каждом запросе. Это может выглядеть сложно, но на самом деле все намного проще. Сперва мы отправляем POST запрос с логином и паролем, а за тем вытягиваем ID сессии
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($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $reguestParams);
//делаем запрос
$responseData = curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>
Теперь давайте разберемся как нам получить доступ к странице с авторизацией. Для этого мы должны получить ID сессии и в дальнейшем передавать его при каждом запросе. Это может выглядеть сложно, но на самом деле все намного проще. Сперва мы отправляем POST запрос с логином и паролем, а за тем вытягиваем ID сессии
В этой статье реч пойдет о том, что называют граберами или парсерами на PHP. На самом деле я всего лишь раскрою технологию, которая очень проста, а превращать ее в парсер или грабер ваше дело. Как я уже сказал, все очень просто. Давай ка разберем что вообще мы хотим сделать, тогда проще будет понять все остальные телодвижения. Чаще всего нам надо получить текст с другого сайта. Для этого нам нужен исходный код страниц, который можно получить с помощью PHP. Самый простой способ это когда мы знаем адрес нужной страницы и просто получаем ее код, например так
Это очень простой способ. Можно скормить скрипту файл с адресами и он их обшарит. В самом скрипте можно вести обработку полученного кода, например вырезать новости или заголовки. Но что делать если сайт требует авторизации или особых заголовков. Сейчас большинство сайтов имеют такую защиту(нормальных сайтов). Тогда на на помощь приходит curl. Че за хрень, спросят некот
1
2
<?php $data = file_get_contents('http://target.com');?>
Это очень простой способ. Можно скормить скрипту файл с адресами и он их обшарит. В самом скрипте можно вести обработку полученного кода, например вырезать новости или заголовки. Но что делать если сайт требует авторизации или особых заголовков. Сейчас большинство сайтов имеют такую защиту(нормальных сайтов). Тогда на на помощь приходит curl. Че за хрень, спросят некот
134294
0
Счетчик посещений на PHP
И так, сразу определимся что наш счетчик будет уметь и делать. В этой статье я решил написать ту часть, которая не совсем то и счетчик(о нем я напишу в следующий раз), а скорее скрипт, показывающий кто онлайн. Скрипт будет показывать сколько гостей и сколько пользователей, прошедших авторизацию онлайн.
Так как мы не можем вести контроль в режиме реального времени, нам надо определится в течении какого времени счетчик будет считать пользователя онлайн. Я взял 10 минут...
теперь надо подумать о том куда мы будем писать временную информацию. Можно было бы использовать базы данных, но для такой задачи это по меньшей мере не разумно. По-этому мы будем писать в файл. Допустим наш файл для счетчика пользователей онлайн будет называться online.da.
Теперь код с подробными комментами
Так как мы не можем вести контроль в режиме реального времени, нам надо определится в течении какого времени счетчик будет считать пользователя онлайн. Я взял 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';
//два массива, для гостей и пользователей?>
1 2
Сейчас online: 42. Зарегистрированных: 0. Гостей: 42.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте