Архив за април, 2006
PHP: RegExp проблем с кирилицата
27 април, 2006За един от последните си сайтове писах една търсачка, на php. За търсенето ползвах регулярни изрази (т. нар. regular expressions), по-конкретно функцията preg_match. Като първи параметър на функцията се задава филтъра, по който се прави търсенето. Ако в края на стринга за филтъра има "i", това означава, че се прави case insensitive match, т.е. търсене без да прави разлика между главни и малки букви.
Дотук добре – реших да ползвам тази опция, дали търсенето да прави разлика между големи и малки букви или не. В първия случай слагам във филтъра думата, по която се търси, а във втория – отзад слагам едно i – за case insensitive. Вкъщи сървъра ми е Windows базиран – нямаше проблеми – функцията работеше. Сървъра дето се хоства сайта, обаче, е Линукс и имаше проблем с кирилицата – дори да му задавам case insensitive match, то винаги си правеше case sensitive, и то само за кирилицата – голям проблем.
Поразпитах из БГ форумите, най-адекватно решение ми даде Бабата от ФлашБГ (за което съм много благодарен) – във филтъра всяка буква от думата по която се търси да я правя в група с голяма и малка буква. Не ме разбрахте? Пример: търсиме за думата ‘нещо’, искаме да не прави разлика между големи и малки букви. Стандартно филтъра щеше да ни е от вида
preg_match ("/нещо/i",$text);
обаче туй нящо под Линукс не ще. Ще ни върне само и само думата "нещо", като думи като "Нещо", "нЕщО" и "неЩО" например ще пропусне. Решението на Бабата:
preg_match ("/[Нн][Ее][Щщ][Оо]/",$text);
За какво иде реч? [ и ] означават, че се търси само за един от знаците между тях, т.е. в нашия случай [Нн] ще търси за Н или н, което ни устройва. Дотук добре, остава обаче да напишем функция за създаване на подобен филтър динамично, т.е. имаме променлива с ключовата дума, задаваме я на функцията и тя ни връща филтъра. Ето какво написах:
// Конкретно на моя сървър фунцкиите strtolower и strtoupper отказаха да работят за кирилица, затова си написах мои:
function cstrtolower($str) {
return strtr($str, "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ", "абвгдежзийклмнопрстуфхцчшщъьюяabcdefghijklmnopqrstuvwxyz");
}
function cstrtoupper($str) {
return strtr($str, "абвгдежзийклмнопрстуфхцчшщъьюяabcdefghijklmnopqrstuvwxyz", "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
// Същинската функция:
function createFilter ($string) {
$string = cstrtolower($string);
for ($i=0;$i<strlen($string);$i++) {
$letter_small = substr($string,$i,1);
$letter_big = cstrtoupper($letter_small);
$newstr .= ‘['.$letter_small.$letter_big.']‘;
}
return $newstr;
}
Това е, надявам се на някого да свърши работа. А – и друго – при мен също не работеше филтъра ако искам да търси за цяла дума, това пак при кирилицата. Решението: вместо
preg_match ("/\b[Нн][Ее][Щщ][Оо]\b/", $text);
ползвайте
preg_match ("/[^A-Za-zА-Яа-я][Нн][Ее][Щщ][Оо][^A-Za-zА-Яа-я]/", $text);
Още един нов сайт
27 април, 2006Тука доста неща се струпаха и нямам време да пиша затова сега ще предоставя всичко накуп. В различни постове, естествено.
И така, тия дни скалъпих още едно сайтче – въпросният сайт. Дизайн – нищо особено – хората така си го искаха. Менюто е флаш, ако нямаш флаш, или версията на флаш е по-стара от 8, се зарежда html меню. Направил съм падащи подменюта (JavaScript), ако юзера няма JavaScript всяка страница зарежда динамично едно каре вляво, в което се съдържа един вид менюто (всички страници) на съответната подкатегория. Съдържаниетио се съхранява в база данни, клиентът може сам да го обновява. Мисля, че съм помислил за всичко. И те са доволни
Безобразие!
24 април, 2006http://www.bovineunite.com/main.htm
Видях този линк днес във форумите на ФлашБГ. Нямам думи – баси нещастниците! Защо? Отворете сайта и ще разберете…
Христос Воскресе
23 април, 2006Честит Великден! Христос възкръсна, ще видим дали и ние утре ще възкръснем след днешното пиене
44 Минути, Крал Артур, Мъж Под Прицел
22 април, 2006В последно време не ми остава много свободно време да гледам филми, но докато бях болен поизгледах някой и друг. Сега вече си пускам TV-out-a и филмите от компа ми си ги гледам на телевизора – доста е удобно.
44 Минути
Филма е по действителен случай, разказва се за едни закоравели престъпници които решават да оберат една банка, нещо се обърква и тия почват да стрелят ‘на месо’ абсолютно навсякъде. Тежко въоръжени са, имат Калашников (АК-47) и солят наред. Ако ви се гледа екшън съветвам ви да си го намерите. Много як филм. Преди малко видях че го има в торентите на ДатаБГ (аз го гледах на ДВД).
Крал Артур
Режисьорска версия. Разказва историята на Артур и рицарите от кръглата маса. Също доста добър филм, битките са направени доста добре – добре окървавени са.
Мъж Под Прицел
Най-после го гледах и него. Става дума за един бивш военен (Дензъл Уошингтън), който не е много доволен от живота си. Наемат го като телохранител на едно богаташко отроче в Мексико Сити, тъй като по това време стават масови отвличания с цел откуп. Детето успява да промени живота на своя бодигард, като му връща смисъла на живота. В крайна сметка обаче похитители успяват да отвлекат момичето, и нашият герой се впуска в саморазправа, търсейки справедливост. Препоръчвам ви го.
Нов уеб сайт от мен
20 април, 2006Както може би повечето от вас са забелязали блогът не беше достъпен около седмица, поради технически причини. Все още не знам причините. Нейсе, важното е че вече всичко е наред.
Преди букввално няколко дни пуснах официално новия си уебсайт – на "Училища за Европа" ООД. Дизайнът е семпъл но повече и не е необходимо. Основната идея беше да се наблегне на информацията, следователно и основните усилия хвърлих в тази насока – изграждане на CMS (Content Management System (в превод: Система за Администриране на Съдържанието)), който е написан на php и е изцяло пригоден за нуждите на клиента. За HTML форматиране на текстовете отново разчитам на open source продукта FCK Editor - най-мощният WYSIWYG редактор за мен (същото като когато пускате коментари – това панелче с инструменти за форматиране на текста, дето прилича на MS Word – ей това е FCK Editor).
Сайтът има валиден XHTML и CSS. Адресът е www.fesbg.net.
Шарка!
9 април, 2006Болен съм от шарка. Сутринта като се погледнах в огледалото и получих удар. И това е заради бацила Косьо! Долен червей! Щото като е бил болен вместо още една седмица да си седи вкъщи под карантина той ходи нагоре-надолу и сее зараза.
Ужаст! Целия съм на петна и яко сърби!
П.П. Между другото, днес Попа има рожден ден. Да е жив и здрав!
Мат’риали от Емсата
4 април, 2006Ха здрасти!
Снощи бехме в Емсата. Малко хора, ама дет се вика – от сърце. Е то така е – няма как в понеделник всеки да дойде. Ето аз днеска трябваше да се вясна в УНСС, ама на – едвам отлепих сутринта (к’ва сутрин бе – е преди малко станах
), и днеска ще пропусна лекциите. Честно казано, вкъщи някак си ми е по-оферта. Така де.
А, щях да забравя – ето тук са снимките и клипчетата. Името и паролата си я знаете, ако не – питайте на ИСКюто. Искам само да отбележа, че клипчетата са големи и по-добре е да ги теглите с FlashGet или друг download мениджър (GetRight, NetTransporter, Download Accelerator +, …). Значи цъкате на клипчето, или десен бутон -> Download Using Flashget (за потребителите на Firefox – "FlashGot link"), или там какъвто ви е даунлоуд мениджъра. Като ви пита къде да се сейвне файла, вижте за опция Login to Server. Активирайте я, и в полето за username пишете същото име, а в password – паролата. Щото иначе ще изтеглите дедовия
. Във FlashGet нещата трябва да ви изглеждат така:

Айде със здраве.