Код - пример #1 | |
1 |
function imTimer($name= 'default', $mode= ''){ static $timers= array(); $now=microtime(true); if(!isset($timers[$name])){ $timers[$name]= $now; return 0; } $ret= $now - $timers[$name]; if($mode == 'reset') $timers[$name]= $now; return round($ret, 5); } // пример использования // запускаем imTimer(); ... // здесь типа много кода imTimer('temp'); function temp() { ... // кучка говнокода } // выводим время выполнения функции temp echo imTimer('temp'); ... // еще код // выводим время выполнения всего скрипта echo imTimer(); |
понедельник, 13 декабря 2010 г.
imTimer профайлер для PHP
Notice, Warning логирование ошибок PHP
Код - пример #1 | |
1 |
; Показывать все ошибки, включая нотисы, варнинги error_reporting = E_ALL | E_STRICT ; Не показывать ошибки display_errors = Off ; Отключить вывод ошибок при старте выполнения php, ошибки при выполнении на клиенте. display_startup_errors = Off ; Записывать ошибки в логи log_errors = On ; размер файла ошибок log_errors_max_len = 1024 ; Не записывать повторяющиеся ошибки ignore_repeated_errors = On ; Это повторные ошибки, которые впрочем можно и включить, теперь они нам не страшны (Off) ignore_repeated_source = On ; Логгировать утечки памяти report_memleaks = On ; Трассировка ошибок (дебагинг). Это больше полезно разработчикам php систем вроде cms track_errors = Off ; Формат вывода ошибок в виде html. Нам ссылки не нужны, мы пишем в текстовый файл html_errors = Off ; Путь к файлу ошибок. error_log = "\apache\logs\php_error.log" |
В php скрипте включить выключить можно так:
Код - пример #1 | |
1 |
ini_set("display_errors", "0"); error_reporting(E_ALL); |
четверг, 9 декабря 2010 г.
Авторизация PHP
Код - пример #1 | |
1 |
// если пользователь не авторизован if (!isset($_SESSION['user_id'])) { // то проверяем его куки // вдруг там есть логин и пароль к нашему скрипту if (isset($_COOKIE['login']) && isset($_COOKIE['password'])) { // если же такие имеются // то пробуем авторизовать пользователя по этим логину и паролю $login = mysql_real_escape_string($_COOKIE['login']); $password = mysql_real_escape_string($_COOKIE['password']); // и по аналогии с авторизацией через форму: // делаем запрос к БД // и ищем юзера с таким логином и паролем $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); // если такой пользователь нашелся if (mysql_num_rows($sql) == 1) { // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя) $row = mysql_fetch_assoc($sql); $_SESSION['user_id'] = $row['id']; // не забываем, что для работы с сессионными данными, // у нас в каждом скрипте должно присутствовать session_start(); } else { // только мы не будем давай ссылку на форму авторизации // вдруг человек и не хочет был авторизованым // а пришел просто поглядеть на наши страницы как гость } } } |
jQuery - как получить value radio элемента
Код - пример #1 | |
1 |
// ========= 1 вариант ========== Cтрана: <br /> <input type="radio" name="country" value="Russia" checked="checked">Россия <br /> <input type="radio" name="country" value="Other">Другая ... var the_value = $(":radio[name=country]").filter(":checked"); // ========= 2 вариант ========== <form id="radio_form"> <fieldset> <label><input type="radio" name="color" value="red" checked="checked" />Red</label><br /> <label><input type="radio" name="color" value="yellow" />Yellow</label><br /> <label><input type="radio" name="color" value="blue" />Blue</label><br /> <label><input type="radio" name="color" value="purple" />Purple</label><br /> </fieldset> </form> ... var the_value = $('#radio_form input:radio:checked').val(); |
среда, 8 декабря 2010 г.
Как удалить денвер
Комплекс полностью автономен и останется таковым. Поэтому для легальной деинсталляции Денвера достаточно просто удалить директорию, в которую вы его установили (По умолчанию –C:\WebServers ). При желании можете также стереть ярлыки с Рабочего стола и из Автозагрузки (если забудете, система сама об этом напомнит при следующей загрузке).
Если вы перед удалением Денвера не завершили его работу корректно (перезагрузившись или ярлыком остановки), то, вероятно, Вам придется вручную «почистить» файлС:\WINDOWS\system32\drivers\etc\hosts (в Windows NT/2000/XP/2003) или C:\WINDOWS\hosts (в WIndows 9x или Me), чтобы адреса [Не проверен] и test2.ru перестали вести на локальную машину, а «смотрели» в Интернет.
Таким образом, для деинсталляции Денвера достаточен следующий порядок действий:
1. Остановите Денвер 2. Если виртуальный диск создаётся по умолчанию, в Start -> Run нужно выполнить следующую команду (если необходимо, замените Z на Вашу букву виртуального диска): subst Z: /D 3. Удалите папку инсталляции Денвера (по умолчанию C:\WebServers) 4. Удалите, если необходимо, ярлык из Автозагрузки 5. Удалите ярлыки Запуска/Останова Комплекса
четверг, 11 ноября 2010 г.
Netbeans Горячие клавиши
Я работаю с IDE Netbeans и Notepad++
маст хэв - горячие клавиши для Netbeans
* Поиск и замена
Ctrl+F3 - Поиск слова, находящегося у курсора
F3/Shift+F3 - Поиск слудующего/предыдущего вхождения слова в файле
Ctrl+F/H - Поиск/Замена в файле
Alt+F7 - Поиск использований
Ctrl+Shift+F/H - Поиск/замена в проектах
Alt+Shift+U - Поиск результатов использования
Alt+Shift+H - Отключить подсветку результата поиска
Ctrl+R - Переименовать
Ctrl+U, then U - Конвертация выделенного текста в верхний регистр
Ctrl+U, then L - Конвертация выделенного текста в нижний регистр
Ctrl+U, then S - Инверсия регистра букв выделенного текста
Ctrl+Shift+V - Вставка отформатированного текста
Ctrl+I - Перейти в поле "Быстрый Поиск"
* Навигация по исходному коду
Ctrl+O/Alt+Shift+O - Перейти к типу/файлу
Ctrl+Shift+T - Перейти к JUnit тесту
Alt+O - Перейти к источнику
Ctrl+B - Перейти к объявлению переменной
Ctrl+G - Перейти к строке, задав ее номер
Ctrl+Shift+M - Добавить/Удалить заметку
Ctrl+Shift+Period/Comma - Следующая/Предыдущая заметка
Ctrl+Period/Comma - Следующая/Предыдущая использование/ошибка компиляции
Ctrl+Shift+1/2/3 - Выделить в проектах/файлах/фаворитах
Ctrl+[ - Переместить курсор к открывающейся/закрывающейся скобке от соответствующей закрывающейся/открывающейся скобки
Ctrl+K/Ctrl+Shift K - Следующее/предыдущее совпадение слова
Alt+Left/Alt+Right/Ctrl+Q - Перейти к предыдущему/следующему/последнему редактированию
Alt+Up/Down - Следующее/предыдущее встречаемость данной переменной
* Программирование на языке Java
Alt+Insert - Сгенерировать код
Ctrl+Shift+I - Исправить все импорты класса
Alt+Shift+I - Исправить выделенный импорт класса
Alt+Shift+F - Отформатировать текст согласно кодинг-стайлу
Alt+Shift+Left/Right/Up/Down - Переместить строку влево/вправо/вверх/вниз на одну табуляцию
Ctrl+Shift+Up/Down - Скопировать и вставить текущую строку выше/ниже
Ctrl/Alt+F12 - Просмотр членов класса/всей иерархии класса
Ctrl+/ - Закомментировать/Раскомментировать текущую строку
Ctrl+E - Удалить текущую строку
При написании кода очень удобно использовать сокращения
часто повторяемых участков кода. Схема использования:
сокращение+Tab
* Сокращения для Java редактора
En - Enumeration
Ex - Exception
Ob - Object
Psf - public static final
Psfb - public static final boolean
Psfi - public static final int
Psfs - public static final String
St - String
ab - abstract
bo - boolean
br - break
ca - catch (
cl - class
cn - continue
df - default:
dowhile - do {} while (condition);
eq - equals
ex - extends
fa - false
fi - final
fl - float
forc - for (Iterator it = collection.iterator(); it.hasNext();) {Object elem = (Object) it.next();}
fore - for (Object elem : iterable) {}
fori - for (int i = 0; i < arr.length; i++) {}
fy - finally
ie - interface
ifelse - if (condition){}else {}
im - implements
iof - instanceof
ir - import
le - length
newo - Object name = new Object(args);
pe - protected
pr - private
psf - private static final
psfb - private static final boolean
psfi - private static final int
psfs - private static final String
pst - printStackTrace();
psvm - public static void main(String[] args){}
pu - public
re - return
serr - System.err.println ("|");
sout - System.out.println ("|");
st - static
sw - switch (
sy - synchronized
tds - Thread.dumpStack();
th - throws
trycatch - try {} catch (Exception e) {}
tw - throw
twn - throw new
wh - while (
whileit - while (it.hasNext()) {Object elem = (Object) it.next();}
Подсветка кода для Netbeans как в Notepad++
вторник, 9 ноября 2010 г.
Дебагинг в PHP
Самый простой
Код - пример #1 | |
1 |
print_r($foo); |
Код - пример #1 | |
1 |
echo '<pre>'; print_r($foo); |
Код - пример #1 | |
1 |
function deb($str, $name = '') { $name = ($name)?$name:gettype($str); $aCol = array('#FFF082','#BAFF81','#BAFFD7','#F0D9D7'); $color = $aCol[RAND(0,3)]; echo "<PRE><div style='background-color: $color'><b>$name = <b>"; if (is_array($str)) echo '<br>'; print_r($str); echo "</div></PRE><br>"; } // Пример использования deb($foo); // или deb($foo, 'foo'); |