Получить количество строк не учитывая LIMIT

Сегодня наткнулся на интересную опцию в SQL. Возможно многие о ней знают, но я до сегодняшнего дня о ней не знал.
Представим, есть ситуация: нужно сделать запрос с ограничением получения строк(LIMIT), но и в тоже время нужно узнать полное количество строк подходящих под условия запроса. Это ситуация может использоваться, например, в пагинаторе. И так, я всегда в таких случаях делал два запроса, хотя понимал, что это лишняя нагрузка, но ни чего не мог поделать. Но теперь я зная, как делать правильно и покажу вам. Читать далее «Получить количество строк не учитывая LIMIT»

Как избежать кеширование в браузере. Ревизия файлов

Бывает, такое, что после обновления сайта, новые стили или новые js скрипты не подтягиваются. Вроде бы на сервере файлы новые, но в браузере отображается все по старому. Это из-за кеша браузера. Программисты и многие пользователи знают как с этим бороться — просто почистить кеш. Но ведь не будешь писать после каждого обновления, чтобы пользователи сайта чистили кеш. Нужно другое решение. И оно есть — это ревизия файлов. Читать далее «Как избежать кеширование в браузере. Ревизия файлов»

Работа с ZIP архивами. Запаковать и распаковать файлы

Сегодня столкнулся с небольшой проблемой: нужно было быстро перенести файлы с одно сервера на другой. По сути это не проблема, но у меня медленный интернет, а файлов было много — по примерным подсчетам фалы переносились бы 2-3 часа. И поэтому я решил на первом сервере запаковать файлы в архив, перекинуть его и распаковать на другом сервере. Раньше с архивами на unix сервере я работал через SSH доступ в консоли, но и тут мне опять не повезло — такого доступа у меня нет, только ftp. И в связи со всеми этими проблемами пришлось писать два скрипта: один запаковывает файлы, а другой распаковывает. Читать далее «Работа с ZIP архивами. Запаковать и распаковать файлы»

Как отправить несколько одинаковых ajax запросов и обработать полученные данные?

Совсем недавно столкнулся с серьезной проблемой: я разрабатывал приложение для ВКонтакте и мне нужно было отправить несколько одинаковых запросов на сервер ВК, потом обработать полученные данные. Сначала я не увидел в этом ни каких проблем: написать запрос и засунуть его в цикл. Но не тут-то было. Я не учел того, что js невозможно остановить(и он не ждет ответа ajax), получилось так, что пока первый запрос еще даже не получил ответ, цикл уже отработал и сделал кучу запросов. Возможно в другой ситуации я не обратил на это внимание, но в приложениях ВК так делать нельзя.
Читать далее «Как отправить несколько одинаковых ajax запросов и обработать полученные данные?»

Проверка правильности e-mail адреса

В этом примере, я хочу показать, как можно проверить валидность (корректность) введенного e-mail адреса.
Это очень просто и делается практически в одну строку. Для проверки будем использовать регулярные выражения. Перед тем как посмотреть исходник, нужно понять какой e-mail правильный:
E-mail состоит из двух частей имени пользователя и доменного имени, роль разделителя играет @. Это первое правило — обязательное присутствие @ и текста слева и справа от нее. Второй признак корректности — это то, что символы, составляющие имя пользователя и доменное имя, должны содержать только большие и маленькие латинские символы, цифры, тире, нижнее подчеркивание и точки. Тритий признак: обязательное наличие домена первого уровня, это ru, com, net и тд.
Читать далее «Проверка правильности e-mail адреса»

Создание формы с капчей

В этой статье я хочу рассказать, как создать капчу. Для своих сайтов, я раньше всегда использовал уже готовые решения. Но сейчас решил разобраться и рассказать, как устроена капча. На самом деле в ней нет ни чего сверхъестественного. Капча – это просто картинка, состоящая из фона и случайных символов. В исходнике есть комментарии, думаю, Вам все будет понятно. Весь исходник состоит их трех файлов, index.php – скрипт проверяющий корректность введенной капчи, capcha.php – скрипт генерирующий капчу иindex.html – форма для ввода капчи.
Читать далее «Создание формы с капчей»

Функция для генерации пароля

Маленькая функция для генерации пароля любой длинны. Помимо длины функция может генерировать в пароле разные символы: маленькие буквы, большие буквы, цифры или комбинации символов.
Читать далее «Функция для генерации пароля»

Составные переменные

Составные переменные
Нашел интересную «фишку» в php: составные переменные. Это может пригодится, например, при переборе переменных у которых в названии отличается только префикс.
Читать далее «Составные переменные»

Поиск в базе данных одинаковых записей

Поиск в базе данных одинаковых записей
Я не очень силен в SQL — могу писать только простые запросы, а с серьезными запросами у меня всегда проблемы. Если запрос «большой», я стараюсь всегда разбить его. Помню, как-то очень долго я мучился с такой проблемой: нужно было найти записи, которые являются дублями. Читать далее «Поиск в базе данных одинаковых записей»

Как узнать размер папки со всеми подпапками

Как узнать размер папки со всеми подпапками
Как-то я столкнулся с проблемой, нужно было узнать, сколько места на хостинге занимает моя папка с картинками. Проблема была в том, что в папке много подпапок и очень много картинок. Место на хостинге ограниченное и пришлось писать скрипт, который бы запускался раз в сутки и чистил старые файлы, если размер папки с картинками превышал допустимый размер. Как-нибудь я опишу весь этот скрипт, но сейчас, я выложу только ту часть, которая отвечает за получение размера папки.
Читать далее «Как узнать размер папки со всеми подпапками»