Category Archives: Web

Web

Функция на php за валидиране на email адреси

Няма какво да пояснявам повече. Преди време бях видял някъде тази функция и бях останал доволен накрая от нея и затова мисля да я споделя тук:

function check_email_address($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
.([A-Za-z0-9]+))$",
$domain_array[$i])) {
return false;
}
}
}
return true;
}

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Да спасим MySQL

Както всеки ползващ MySQL се почувствах длъжен макар и с малко закъснение да напиша кратка публикация понеже се изписа доста вече по този въпрос.

На кратко: Oracle ще закупуват SUN, а както знаете MySQL е част от SUN, респективно MySQL като конкурент на Oracle може доста сериозно да пострада.

Изпратихте ли писмо-молба до Европейската комисия!? Ето ви повече информация къде и какво да изпратите-> ТУК

Официален сайт на създателя на MySQL: Michael "Monty" Widenius
Връзка към кампанията "Да спасим MySQL": Michael "Monty" Widenius
Ето няколко линка с повече информация на български: dkolov.log. bgbogomil.info, technews.bg

Да се надяваме, че Европейската комисия ще помогне.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Плъгин Auto edno23 за WordPress

Днес направих плъгин за WordPress които автоматично добавя вашата публикация във www.edno23.com . Идеята е с едно публикуване в WordPress да публикувате и в edno23 .

Плъгинът "Auto edno23" има страница за настройка където трябва да въведете вашето edno23 потребителско име и парола. От там можете да изберете с тик дали автоматично да се публикува публикацията в edno23 или само когато отметнете тикчето при самото добавяне от WordPress. Добавил съм и възможност да прави кратки връзки от рода "http://is.gd/5LREc"

Плъгинът може да бъде изтеглен от тук: Плъгин Auto edno23

От тук може да изтеглите директно сорса на плъгина-> Сорс на плъгин

PS: Използвал съм за основа auto tweeter които доста моднах :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Полезни неща за писачите на WordPress плъгини

Преди малко трябваше да напиша на бързо един прост плъгин за WordPress които да изпраща съдържанието на публикацията и линка към нея в един приятелски сайт. След като го направих реших да напиша по- важните неща от него:

1. Извеждане на съдържание на публикацията:
$_POST['post_content']

2. Извеждане на заглавието на публикацията:
$_POST['post_title']

3. Извеждане на линк на публикацията:
global $post_ID;
get_permalink($post_ID);

4. Добавяне на действие при публикуване:
add_action('publish_post', 'submit_friend_site');

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Как да проверя какъв е моят IP Address

Наложи ми се да пусна една малка уеб тулка която да ми показва публичният IP адрес и понеже е супер лесна за реализация реших да направя и допълнение което да извежда информация за браузъра на потребителя. Ето връзка и към тази тулка: Как да проверява какъв е моят IP Address

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Нов ред (на Windows) в PHP

За да се направи нов ред в php(при echo примерно) като на Windows трябва да се използва не само "\n" за нов ред, а комбинацията от "\r\n" т.е.

Пример за нов ред в php като на Windows:

echo "Martin\r\nPetrov\r\n";

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Нови реферати в referati.org

Снощи добавих 285 реферати които ми изпратиха приятели/познати и посетители на referati.org . Рефератите са от категории "Информационни технологии" и "Литература".
Ето някои интересни реферати от "Информационни технологии":

Уроци по .NET
Мостове и Маршрутизатори
Изкуственият интелект
Компютърно зрение- Симулиране на невронни мрежи
Линукс. Трикове за Bash
Безжични комуникации и оборудване в INTERNEТ
Системи бази данни и бази знания

Секция "Литература":

Природа и цивилизация във Вазовото стихотворение Отечество любезно
Иван Вазов -- Една българка -- Ролята на деня и нощта в разказа

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Връзка на блога с facebook и twitter

Преди малко реших да обвържа блога с Facebook и Twitter.

Какво е Facebook? Facebook е най-бързо разрастващата се, безплатна, социална мрежа в света. До момента, уеб сайтът има над 175 милиона активни, регистрирани потребители. Всяка седмица се регистрират над 5 милиона нови такива.

Какво е Twitter?
Най-кратко казано Twitter е платформа за микроблогинг. Постовете са кратки до 2-3 изречения и целта е да се привлече вниманието към интересна публикация и разпространението и сред максимален брой потребители.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Replace на един стринг с друг в MySQL

Случвало ли ви се е в MySQL таблица да имате 1 мил. реда като в една от колонките имате стринг "гад" които желаете да премахнете. Сещам се за две решения едното е чрез някакъв език(php,perl …) да обходихте всички редове (select) и да ги обновите(update)  което са си две операции т.е. 1 000 001 (1 000 000 пъти -- update и 1 път select).
Вторият и най- рационален вариант за мен е, чрез функцията REPLACE която е вградена в MySQL.

Ето Ви пример:

update nasha_tablica set kolonka=replace(kolonka,'gad','pich');

Тук в таблица "nasha_tablica" в колона "kolonka" ще бъде презаписано "gad" със "pich".

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Проблеми при php скриптове които ползват много памет

Всъщност тук ще обсъдя случаите в които се пише php скрипт при изпълнението на които се извежда съобщение като:" Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 500520576 bytes) in /var/www/a.php on line 4" или с няколко думи скрипта използва повече памет от колкото му е заделена предварително. Идеята тук е защо излиза това съобщение и  как да го поправим(действието :) ).

1. Предварително заделенета памет се определя от конфигурационния файл /etc/php5/php.ini) php.ini :

memory_limit = 32M      ; Maximum amount of memory a script may consume (32MB)

В този конфигурационен файл паметта която може да използва php скрипт е максимум 32 MB. Тази стойност може да се променя разбира се.

След промяна в php.ini трябва да се рестартира apache2. След това може да се изпълни phpinfo(); и ще видите новата заделена памет за php/скрипт.

2. Друг вариант за промяна на memory_limit е за при php5-cli (command-line interpreter for the php5 scripting language) или пример:

php -d memory_limit=512M a.php

По този начин при изпълненито на a.php се заделя 512 MB памет като се пренебрегва тази стойност от php.ini

3. Интересна функция в php е memory_get_usage() която връща текущата използва памет от php скрипта:

<?php

echo memory_get_usage() . "\n"; // 48504

$a = str_repeat("mpetrov.net",100104 );

echo memory_get_usage() . "\n"; // 1150084

unset($a);

echo memory_get_usage() . "\n"; // 48504

?>

По този начин може да се направи извод колко памет ползва php от самото php. Последния пример показва всъщност, че трябва да се unset всички променливи които няма да се ползват повторно за да не заемат памет :)

Извод: Бяха разгледани няколко причини и решения за грешката в php: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 500520576 bytes)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)