
Быстрый поиск
Введите фрагмент названия статьи для поиска
Генерация последовательности уникальных кодов на PHP
12.10.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Иногда возникает задача генерации последовательности уникальных кодов по определенному формату. Это могут быть какие-нибудь одноразовые токены, коды лотерейных билетов, серийные номера, scratch-карты, да мало ли чего. Простое использование ГСЧ в этом случае не дает 100% гарантии, так как выдаваемые им значения могут повторяться, а при большом количестве кодов количество повторений будет только расти. Предлагаю вам следующее решение:Code (PHP) : Убрать нумерацию
- // Набор символов для генерации кодов
- $str='1234567890ABCDEF';
- // Длина кода без учета разделителей
- $code_length=16;
- // Нужное количество кодов
- $codes_count=300000;
- // Позиции разделителя (0 - не надо)
- $code_separartor=4;
- $tmp=array();
- $str_length=strlen($str)-1;
- // Цикл до заполнения массива
- while (count($tmp)<$codes_count) {
- // Сгенерировать индекс массива
- $code='';
- for ($i=0; $i<$code_length; $i++){
- // Разделитель можно не добавлять
- if ($i>0 && $code_separartor>0 && $i%$code_separartor==0) { $code.='-';}
- $code.=substr($str, mt_rand(0,$str_length), 1);
- }
- // Или в массив добавится новый элемент, или
- // перепишется поверх уже имеющийся
- $tmp[$code]=1;
- }
- // Теперь в массиве $codes уникальные коды
- $codes=array_keys($tmp);
Читать статью целиком »
Просмотров: 11786 | Комментариев: 6
Загрузка файлов перетаскиванием в окно браузера
21.09.2013 | Категория: Web-мастеру и не только | Автор: ManHunter

Загрузка файлов перетаскиванием в окно браузера
Практически все современные web-сервисы предлагают пользователям такую фичу, как загрузку файлов простым перетаскиванием их в браузер. Это действительно очень удобно, когда надо загрузить сразу несколько файлов, поле загрузки может иметь произвольный вид и форму, т.к. не подвязано на стандартные элементы формы, и еще множество других плюсов. Как же это сделано? Очень просто. Мы уже рассматривали в одной из статей прием и отправку текстовых данных при помощи технологии AJAX, загрузка файлов выполняется не намного сложнее.
Читать статью целиком »
Просмотров: 26478 | Комментариев: 17
Подсветка результатов поиска на странице
05.02.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Сложно представить современный web-сайт без поиска. И хорошим тоном считается не просто выводить все страницы, на которых был найден запрошенный результат, но и как-нибудь выделять искомые слова в тексте. Если контент сайта представляет собой обычный текст без html-разметки, то тут все просто, достаточно использовать что-то типа str_replace. А как быть, если на странице имеются html-теги, и надо выделить только тот текст, который не заключен внутри тегов? Например, нам надо выделить слово "поиск" в такой тестовой строке:Code (HTML) : Убрать нумерацию
- Для поиска и просмотра <a href="/search" title="Результаты поиска">результатов
- поиска</a> пройдите по поисковой ссылке.
Code (HTML) : Убрать нумерацию
- Для <b>поиск</b>а и просмотра <a href="/search" title="Результаты <b>поиск</b>а">
- результатов <b>поиск</b>а</a> пройдите по <b>поиск</b>овой ссылке.
Code (PHP) : Убрать нумерацию
- // Искомая строка для подсветки на странице
- $search = 'html';
- // Создаем строку для регулярного выражения
- $pattern = "/((?:^|>)[^<]*)(".$search.")/si";
- // Подсвеченная строка
- $replace = '$1<b style="color:#FF0000; background:#FFFF00;">$2</b>';
- // Заменяем
- $html = preg_replace($pattern, $replace, $html);
Читать статью целиком »
Просмотров: 13082 | Комментариев: 7
Удаленное управление питанием сервера через Rack PDU
15.12.2012 | Категория: Web-мастеру и не только | Автор: ManHunter

Удаленное управление питанием сервера через Rack PDU
Когда-то по работе возникла необходимость автоматизированного управления серверами в стойке дата-центра. Вопрос с контролем за питанием был решен через power-свич (Switched Rack PDU), который имел возможность удаленного управления по telnet. Для эмуляции действий пользователя я написал вот такой небольшой класс на PHP. Может быть пригодится кому-нибудь еще.
Читать статью целиком »
Просмотров: 5511 | Комментариев: 0
Оценка качества изображения для печати
15.10.2012 | Категория: Web-мастеру и не только | Автор: ManHunter

Оценка качества изображения для печати
Качество изображения измеряется в количествах пикселей (точек) на дюйм (1 дюйм = 25.4 мм), единица измерения - dpi (Dots Per Inch). К типографской печати обычно принимаются изображения не менее 150 dpi, а вот для фотопечати качество должно быть уже 300 dpi и больше. Однако, при оценке качества изображения обязательно надо учитывать и размер печати. К примеру, исходный файл из цифромыльницы с разрешением 1200х900 пикселов будет неплохо смотреться на фотокарточке 10х15 см, но для печати на плакате его качества будет недостаточно. А кадры с Nikon D800 разрешением 7360х4912 пикселов можно без проблем распечатать на формате A1 и повесить на стенку.
Для вычисления dpi надо желаемые размеры печати перевести в дюймы, а затем поделить разрешение исходного файла на эти значения по ширине и высоте. Полученные значения dpi и будут искомым результатом оценки качества изображения. Осталось оформить это все вот в такую несложную функцию:
Code (PHP) : Убрать нумерацию
- // Функция для расчета dpi изображения
- function get_dpi($picture, $print_x, $print_y) {
- if (file_exists($picture)) {
- list ($x,$y)=GetImageSize($picture);
- if ($x && $y && $print_x && $print_y) {
- // "Повернуть" изображение под размер печати
- if ($print_x<$print_y) {
- if ($x>$y) {
- list ($x,$y)=array($y,$x);
- }
- }
- // Посчитать dpi по ширине и высоте
- $dpi=array(
- 'dpi_x'=>intval($x/($print_x/2.54)),
- 'dpi_y'=>intval($y/($print_y/2.54))
- );
- return $dpi;
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
Читать статью целиком »
Просмотров: 7143 | Комментариев: 2


