Укорачивание урла с помощью API TinyUrl.com

Сегодня натолкнулся на «классную» функцию, которая умеет работать с API сайта tinyurl.com
Функция простая и короткая, но все же может пригодиться. Вот исходник:

function getTinyUrl($url) {   
    return file_get_contents("http://tinyurl.com/api-create.php?url=".urlencode(trim($url)));   
}

Сравнение двух дат вида «Y-m-d H:i»

Функция для сравнения двух дат вида «Y-m-d H:i».
После вызова функция вернет 1 или 2 в зависимости от, того какая дата больше.
Все просто, сначала приводим дату и время к Unix виду, а потом сравниваем.

//сравнение двух дат типа: "Y-m-d H:i"
function compareDateTime($date1, $date2){
	//$date1 = "2013-02-21 12:59";
	//$date2 = "2013-02-21 16:59";
	$arr1 = explode(" ", $date1);
	$arr2 = explode(" ", $date2);  
	$arrdate1 = explode("-", $arr1[0]);
	$arrdate2 = explode("-", $arr2[0]);
	$arrtime1 = explode(":", $arr1[1]);
	$arrtime2 = explode(":", $arr2[1]);
	$timestamp2 = (mktime($arrtime2[0], $arrtime2[1], 0, $arrdate2[1],  $arrdate2[2],  $arrdate2[0]));
	$timestamp1 = (mktime($arrtime1[0], $arrtime1[1], 0, $arrdate1[1],  $arrdate1[2],  $arrdate1[0]));
	if($timestamp1>$timestamp2){
		return 1;
	}else{
		return 2;
	}
}

Дата ближайшего прошедшего понедельника

Сегодня в процессе работы, я столкнулся с необходимостью узнать дату ближайшего прошедшего понедельника. Вспомнив сколько раз мне уже это приходилось делать, я решил написать функцию и выложить ее сюда, возможно кому-нибудь пригодится. Если сегодня понедельник, то функция вернет сегодняшнюю дату:

function getPrevMonday(){   
	$result = false;   
	for ($i=0; $i<=7; $i++)   
	{   
		if (date('w',strtotime('-'.$i.' day'))==1)   
		{   
			$result = date('Y-m-d',strtotime('-'.$i.' day'));   
			break;   
		}   
	}   
	return $result;   
}

Читать далее «Дата ближайшего прошедшего понедельника»

Покупка в ВК в IFrame-приложениях

В этой статье я расскажу, как сделать оплату в Ваших IFrame-приложениях в ВКонтакте.
Все предельно просто, нужно сделать какую-нибудь внутреннюю валюту для Вашего приложения и продавать ее за голоса. Я назвал свою валюту просто — «монетки». Когда определились с своей валютой, нужно реализовать ее покупку. Для удобства разработки ВК сделали два режима оплаты: тестовая и «боевая». Тестовый режим доступен сразу после создания приложения, а рабочий, только после прохождения модерации.
Начнем писать код. В первую очередь нужно написать callback.php — этот скрипт указывается в приложении(во вкладке «Платежи») для обратного вызова. Callback.php — будет обрабатывать запросы от ВК, и отдавать информацию о нашем товаре(монетках) и обрабатывать статус заказа. В приведенном ниже коде все понятно, где нужно я написал комментарии. В коде я обращался к базе данных через модели, но Вы можете переписать под себя.
Читать далее «Покупка в ВК в IFrame-приложениях»

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

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

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

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

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

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

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

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

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

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

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

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