Статии

Периодична проверка на MySQL база данни за промени - PHP скрипта по-долу може да се използва за периодична проверка на дадена база данни за настъпили промени. Може да се използват два фактора за установяване на промените - време на последната...

Компресирани ресурсите в уеб страница, когато mod_deflate не е наличен или не е за предпочитане - Компресиране на ресурси като javascript и css файлове преди да се изпратят на клиента е абсолючно задължително за всеки модерен сайт. Този похват помага за намаляване на проблемите от растящите...

Използване на pcregrep при търсене на многоредови съобщения в логовете - Grep е доста полезен инструмент когато е нужно да се прегледа голямо количество логове за специфични думи. Но някои приложения не се придържат стриктно към максимата едно съобщение на един ред....

Основни операции с файлове. Търсене на низ във файл ред по ред - Основните операции с файлове като отваряне, писане и четене са основна част от всеки език за програмиране. В тази статия ще направим сравнение между имплементациите в няколко езика: C, C++, PHP,...

MySQL задача: да се извади предишното и следващото съобщение в дадена тема - Ето една интересна задача: имаме таблица теми и таблица съобщения във всяка тема. Въпросът е как по дадено id на тема и id на съобщение от нея, да се извади съобщението, предното съобщение в...

Замяна на даден низ във всички таблици на MySQL база данни -   Когато се променя домейна на даден сайт или при други подобни операции, се налага даден низ да се замени в цялата база. Не в дадена таблица и колона, а във всички текстови колони във...

Конвенция за нареждането на членовете на класа - Когато създаваме нов клас, в даден момент стигаме до въпроса как да са подредени членовете му. Например да разгледаме следния Java клас: public class MyClass {     public...

Реализиране на прост брояч на посетителите с PHP. Функции за заключване на файлове и тяхната употреба - Има случаи в които е нужно да се отчита поредния номер на текущия посетител на сайта. Дали ще за надписа "Вие сте посетител номер 5" или за някакво по-специално представяне за всеки...

Създаване на HTML checkbox елемент, забранен за промяна, като стойността му се включва в POST данните - Има два начина за забрана на промяна на стойността на елементите в HTML форма. Това се постига с един от двата атрибута readonly="readonly" или disabled="disabled" ....

Форматиране на датата в RSS публикациите - Когато генерираме собствени RSS публикации, рано или късно се сблъскваме с проблема за формата на датата на всяка публикация. За съжаление избрания формат тук е RFC 822 . При неправилно...

Итериране по елементите на Java Map -   Map имплементациите в Java са изключително полезни структури за съхраняване на ключ -> стойност релации. Най-честата употреба е извличането на елемент, асоцииран с даден ключ. Но в...

Още един начин за предотвратяване на спам при HTML формите -   Защитата срещу автоматично попълване от ботове на HTML формите еволюира, но освен това еволюира и логиката на самите ботове. Резултатът е, че за посетителя на уеб сайта става все по...

Хоризонтални HTML списъци със CSS - В тази статия ще покажем как се създават хоризонтални HTML списъци, както и няколко популярни приложения на този похват. Обикновено сме свикнали да мислим за списъците <ul> и <ol> като...

Автоматично изпълняване на дадена команда в bash на даден интервал - Много често се налага да се следи изхода на дадена команда през даден период от време. Типични примери са: преглеждане на съсдържанието на дадена директория, следене на размера на даден файл,...

Прочитане и промяна на стойностите на елементите в HTML формуляр - HTML формулярите са широко разпространени елементи в уеб сайтовете - от обикновени форми за обратна връзка до сложни интернет приложения (т. нар. RIA - Rich Internet Applications. Въпреки че...

Обработка на големи XML файлове с PHP - Обработката на XML файлове в PHP е сравнително лесно за документи с малък размер. Нека разгледаме следния каталог с продукти: <?xml version="1.0"...

Обединяване на директория от картинки в един PDF файл - Този метод е много удобен, когато имаме една директория с картинки (например сканиран документ от няколко страници) и искаме да произведем само един файл, който го обединява. За целта се ползва...

Промяна на ограничителя на awk за обработка на CSV файлове - Една от функциите на програмата awk е разделянето на даден ред на части спрямо интервалите и извличане само на желаните части. Това я прави много подходяща за обработката на CSV файлове (файлове,...

Премахване на HTML коментарите от даден низ в PHP - Функцията по-долу премахва HTML коментарите от даден низ. Полезна е в случай че работите с предварително готови данни, системи за кеширане на съдържанието, както и данни, автоматично излечени от...

Ескайпване на единична кавичка в Bash стринг - Има случаи, когато се налага Bash стринг в единични кавички да съдържа единична кавичка. Например         - предаване на сложни аргументи на програми...

Изпълняване на команди както System акаунта на Windows - Акаунтът System обикновено е забранен и не може да се използва директно. В някои случаи обаче е наложително да се изпълняват команди, използвайки правата на System, или поне това много...

Форматиране на датата и времето в командния промпт на Windows/DOS -   Ако сте запознати с командата date на Linux, и най-вече с богатите възможности за различно форматиране на датата и часа, ще сте неприятно изненадани от липсата дори на зачатъци на...

Няколко трика за писане на CLI PHP скриптовe - Въпреки, че PHP се използва главно за уеб приложения, той е също много удобен за писане на скриптове за командния ред. Особено ако човек е достатъчно навътре, PHP може напълно да замести...

Пренасочване на входа и изхода от програмите в Linux и Windows - Пренасочването на входа и изхода на конзолните програми е абсолютно наложително в определени случаи. Например подаване на изхода на една команда директно като вход на друга (така нареченият...

Определяне на MIME тип по файлово разширение и обратно - Това е един клас за за определяне на MIME тип по файлово разширение и обратно. Вероятно не е пълен или изцяло точен, но може да бъде от полза в някои случаи. Пример за определяне на MIME типа...

Добавяне на "Command prompt here" към контекстното меню на Windows Explorer - Често се случва да се налага да се отвори command prompt прозорец в току-що отворената директория в Windows Explorer. По принцип тогава трябва да се отваря от Старт менюто, след което да се пише на...

Поправяне на потребителите в мигрирана база данни на MSSQL - Когато дадена база данни е пренесена от един на друг MSSQL сървър чрез detach -> copy -> attach, се получава един интересен проблем: потребителите в базата данни не отговарят на никой акаунт...

PHP клас за засичане и обработка на потенциални мейл хедъри в стринг - Това е един малък  PHP клас за засичане и обработка на мейл хедъри в даден стринг. Полезен е за проверка на текста на форми за контакт, книги за гости и подобни преди да се изпрати по...

Изпълняване на rsync като root при забранен логин за root - Rsync е широко използван инструмент за трансфер на файлове. Той е особено полезен за бърза и лесна настройка за архивиране на данни. Възможно е да се използва заедно с ssh за по-голяма...

Пренасочване на пощата на root - На повечето Linux системи има няколко cron задачи, които се изпълняват с правата на root. Резултатът от тях обикновено се изпраща до пощенската папка/файл на root. Ето лесен начин как да се...

Ограничаване на sftp потребители от изпълняване на команди през ssh - Понякога се налага един потребител да има достъп по sftp до своите файлове, но вие не искате да има възможност да изпълнява команди на сървъра през ssh или да...

Изпращане на e-mail с прикачен файл направо от командния ред - За да прикачите файл към писмо и да го изпратите може да ползвате следната команда: echo 'Here is the report from yesterday.' | uuencode /tmp/report.txt report-yesterday.txt | mail -s...

Няколко команди на един ред за пренос на файлове от един на друг компютър - Тук ще говорим за пренос на няколко файла от една на друга Linux машина. Стандартните действия са: cd /path/to/folder tar -zcf archive.tar.gz folder-to-move scp archive.tar.gz...

SSH достъп чрез PuTTY. Удостоверяване с двойка публичен/частен ключ - Все повече хостинг услуги предлагат SSH достъп. Един от най-популярните SSH клиенти за Windows e PuTTY ( http://www.chiark.greenend.org.uk/~sgtatham/putty/ ). Тъй като с нарастването на броя...

Създаване на резервни копия и прехвърляне на друг сървър чрез ssh ключове - В тази статия ще покажем прост начин за създаване на резервно копие на файлове от server1 на backupserver . На server1 създаваме ssh двойка публичен/частен ключ с празна парола, чрез който...

Инсталиране на форум phpBB с MySQL на кирилица - В няколко стъпки как да инсталираме phpBB , без да се показват странни символи, когато пишем теми на български. Въпросния проблем се получава, понеже phpBB превръща кирилицата в HTML...

Bash скрипт за конвертиране на всички файлове от дадена директория в различна кодировка под ОС Linux - Това е един елементарен bash скрипт, който просто ползва iconv , но е доста полезен ако се наложи да конвертирате цяла директория. Най-често приложение - да се конвертира даден сайт от...

Изпращане и получаване на съобщения по ICQ чрез PHP. Използване и приложение на класа WebIcqLite - Тук ще се занимаем с изпращане и получаване на съобщения до/от ICQ абонати. Това е един много полезен начин за комуникация с различни приложения. Много хора просто държат пуснат своя ICQ клиент...

Лесно конфигуриране на мрежовите настройки на Windows - В тази статия ще покажем бърз начин за конфигуриране на мрежовите настройки на Windows. Представете си следната ситуация: имате лаптоп, който ползвате на две места. На едното място се ползва...

Проблем при отваряне на .crt .cer файлове с IIS 6 - Ако имате проблем със свалянето на .crt или .cer файлове хоствани от Internet Information Server (IIS) 6 то проблема е решим. Идеята е, че просто IIS с ASP поддръжка изпълнява...

Предотвратяване на спама. Маскиране на емайл адресите в HTML кода - Всеки се е сблъсквал със спама и знае колко изнервящо е да триеш по 30-40 нежелани писма на ден. От друга страна, оказва се, че това е един от най-успешните рекламни трикове, що се отнася до...

Смяна на паролата или възстановяване на root потребителя в mysql - Тук ще дадем съвети за въпросите "Изтрих си root-а. Какво да правя?" и "Забравих си паролата на root. Помощ!". Предполагам на всеки се е случвало да изгуби паролата за root...

Четене на данни от Excel (xls) файлове с PHP класа Spreadsheet_Excel_Reader - Ето продължение на статията за това как да генерираме Excel файлове с PHP . Тук ще покажем как се четат такива файлове. Това е доста полезна функция, ако трябва често да се синхронизира голяма...

Изпращане на писма с PHPMailer. HTML съдържание, вградени картинки, прикачени файлове, ползване на SMTP, поддръжка на кирилица - PHPMailer е PHP клас за изпращане на електронна поща. Притежава много повече функции от обикновената mail() функция, сред които са прикачени файлове и вградени в писмото картинки. Особен...

Генериране на Excel файлове на кирилица чрез пакета Spreadsheet_Excel_Writer на PEAR - Ето как се генерират Excel файлове чрез Spreadsheet_Excel_Writer Pear пакета на PHP. Инсталация За да можем изобщо да използваме пакета, трябва да го има инсталиран. Това става със следната...

Как да направим защитена с парола директория на Apache - За да може да приложите нещата, описани по-долу, вашият Apache уеб сървър трябва да бъде с активирани модули mod_auth и mod_access . Началото Да предположим, че имате директория на сайта...

Реализиране на статични адреси с mod_rewrite модула на Apache - Напоследък е много модерно динамичното съдържание на сайта да се представя чрез псевдо-статични адреси. Става въпрос за това да няма адрес, който да изглежда по следния начин:...

Конфигуриране на BIND 9 на ISC - Здравейте, Това е съвсем кратко описание как да се конфигурира и пусне в действие bind, named ili dns server... както искате си го наричайте. Разбираме се така, че използвате инсталирания...

Как да конвертираме стрингове между UTF8 i CP1251, ако нямаме iconv - На всеки му се е налагало все някога да конвертира данни от utf8 към cp1251(windows-1251). Естествено най-лесния начин е чрез iconv. Но доста хостинг провайдери не предлагат тази функционалност....

Две функции за реализиране на trim() в javascript - Не знам колко пъти ми се е налагало да махам празните места от началото и от края на даден стринг. Явно и другите хора мислят така, тъй като при всеки език за програмиране има реализирана функцията...

Как да изпратим email като използваме telnet за връзка със SMTP сървъра - 1. Отваряме телнет сесията # telnet mail.server.tld 25 Trying mail.server.tld ... Connected to mail.server.tld Escape character is '^]'. 220 mail.server.tld ESMTP 2....

Как да си направим UTF-8 сайт с PHP и MySQL - Първо започваме със създаването на базата данни. Важно е тя да се създаде правилно, за да може да избегнем след това проблеми с export/import операциите. Ето примерния скрипт: CREATE DATABASE...

Конфигуриране и инсталиране на Apache 2.0.x + SSL - Първо: Трябва да си свалите Apache 2.0.x Web Server от http://httpd.apache.org/download.cgi Второ: Трябва да имате инсталирани пакетите от дистрибуцията OpenSSL и OpenSSL-devel # cd...

Списък с най-добре работещите Realtime Blackhole List - Най-добрите (според мен) RBL списъци: cbl.abuseat.org, relays.ordb.org, list.dsbl.org, sbl.spamhaus.org, dnsbl.sorbs.net   Ето и начина, по който сработват за Postfix и...

Изтриване на съобщения от опашката на Postfix по имейл - Ето един лесен Perl скрипт за премахване на стари съобщения от опашката на Постфикс по имейл адрес #!/usr/bin/perl -w # # pfdel - deletes message containing specified address from #...

Как се пуска NFS под WINDOWS - За тези, които не знаят какво е NFS – Network File System.     Като за начало, да споделя опита постигнат през тези около 3 седмици безбройни и неуморни тестове....

Полезни връзки - Директории Линукс за българи (http://linux-bg.org/) Ресурси mladprogramist.com - Тестове за PHP. Статии за PHP и програмиране. Регистрация на домейни...

Инсталиране на Apache, PHP с MSSQL и Ioncube loader поддръжка на Win машина - Ето бърз и лесен начин да инсталирате Apache, PHP с MSSQL възможности на Win машина. Първо инсталирайте Apache в директорията c:\apache. Не инсталирайте в директорията по подразбиране,...

Qmail опашка изтриване - #!/bin/bash echo "Qmail needs to be STOPPED!!!"; cd /var/qmail/queue/mess if [ "$1" == "" ] || [ "$1" == "help" ] || [ "$1" ==...

Списък на областните градове в България - $city_list = array( "Благоевград", "Бургас", "Варна", "Велико Търново",...

Много добро кратко ръководство за POSIX регулярни изрази - Ето един линк към доста добро (и кратко) ръководство за POSIX регулярни изрази: http://evolt.org/RegEx_Basics?from=50&comments_per_page=50

Ескейпване на входните параметри на php с addslashes - Ето малко код за ескейпване на входните параметри на php скриптовете. Също така се прави проверка за да се избегне досадното двойно ескейпване. if (!get_magic_quotes_gpc()) { foreach...

Проблеми с кирилицата при mysql / php - Ако се появяват само маймунки, опитайте да изпълните това след mysql_connect: $set = @mysql_query ('SET NAMES CP1251'); $set = @mysql_query ('SET COLLATION_CONNECTION=CP1251_GENERAL_CI');