• Random Quote

    За добре организирания ум, смъртта е просто поредното голямо приключение! — Джоан Роулинг (Дж. К. Роулинг)

Днес ми пристигна поръчката на безплатните CD-та с Ubuntu 8.04 и Kubuntu 8.04. Мисля да прасна една инсталация на лаптопа, само трябва да избера кое от двете :) . А безлпатно CD може да вземете от тук

Shipit Ubuntu

ubuntu cd

free ubuntu cd

Tags: , , ,

Comments 2 Comments »

Две алтернативи на функциите от PHP за JavaScript:

function addslashes(str) {
  str = str.replace(/\'/g,'\\\'');
  str = str.replace(/\"/g,'\\"');
  str = str.replace(/\\/g,'\\\\');
  str = str.replace(/\0/g,'\\0');
 
  return str;
}
 
function stripslashes(str) {
  str = str.replace(/\\'/g,'\'');
  str = str.replace(/\\"/g,'"');
  str = str.replace(/\\\\/g,'\\');
  str = str.replace(/\\0/g,'\0');
 
  return str;
}

Tags: , ,

Comments No Comments »

Ще ви покажа няколко трика за максимално точно търсене в http://dirimp3.com , за да намирате това което търсите.

В думите които пишете в търсачката е разрешено да се използват и няколко помощни знаци това са:

кавички ( ” ) - Дума оградена с кавички, търсачката ще търси точно фразата между кавичките.

Пример: “latin lovers” изкарва всички песни, които съдържат фразата latin lovers в името на песента или линка към нея.

звезда ( * ) - Много е полезно ако знаете само част от името на песента. Символите след * , търсачката не ги взима под значение.

Пример: rock* ще покаже песни, които съдържат фрази като rocked, rocking и rockнещоси в името на песента или линка.

минус ( - ) - Когато търсите песен с повече от една фраза и ако го поставите пред една от двете думи, тя ще бъде изключена от търсенето.

Пример: latin -lovers ще покаже всички песни които съдържат latin, но без думата lovers в името на песента или линка.

плюс ( + ) - Също е добре да се използва в търсене с повече от една фраза. Плюс пред една от думите ще даде по голям приоритет на думата.

Пример: latin +lovers - ще покаже всички песни които съдържат думата latin но и такива които съдържат само думата lovers или и двете в името на песента или линка.

Приятно търсене! ;)

Tags: , , , ,

Comments No Comments »

Премахването на PHPSESSID от линковете по страницата става по следния начин.
В .htaccess:

php_flag session.use_trans_sid off

или

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

В php код:

ini_set('session.use_trans_sid', false);

Като трябва да бъде преди session_start();

Tags: , , ,

Comments 1 Comment »

Ако използвате GET метод, за изпращане на параметрите в AJAX скрипт, възможно е Internet Explorer да кешира резултата от първия request.
За да се избегне това съществуват няколко “хак-а”.

Номер 1.
вместо:

 
var url = 'getResult.php?username=test';

изплозвайте:

 
var url = 'getResult.php?username=test' + '&nocache=' + new Date().getTime();

Това ще накара IE винаги да опреснява резултата от всяка заявка.

Номер 2.

В някои случаи помага и този вариант:

 
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;

Третия вариант е да използвате POST метод. ;)

Tags: , ,

Comments No Comments »

APC е PECL extension за PHP, който позволява кеширането на данни и по този начин примерно се избягва изпълнението на една MySQL заявка и ако тя връща едни и същи данни сами се сещате, че е излишно да се изпълнява всеки път, разбира се може да се хардкод-не резултата в кода, но по добрия вариант за мен е кеширането. Преди време тествах различните кеширащи системи от тези тестове са ми останали няколко класове, които реших да споделя.

APC Cache Class:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
 
/**
 * Alternative PHP Cache Class
 * 
 * @param 	      int $lifetime
 * @author 	      Venelin Kochev < vkwebdev@gmail.com >
 * @version 	      1.0
 * @link 		http://cyberroot.org
 * @copyright 	     2008 Venelin Kochev
 *
 */
 
class APCCache{
 
	//Cache life time
	//@param: integer
	private $lifetime = 3600;
 
	function __construct($lifetime = ''){
 
	   if (!extension_loaded('apc')) {
             die('<b>Fatal Error:</b> Cache::__construct() - The apc extension must be loaded for using Cache !');
	   }
 
           if(isset($lifetime)) $this->lifetime = $lifetime;
 
	}
 
    /**
     * Save cache data.
     *
     * @param array $data
     * @param string $id
     * @return boolean
     */	
    public function save($data, $id){
 
        $result = apc_store($id, array($data, time()), $this->lifetime);
 
        return $result;
    }
 
    /**
     * Load cache by Key
     *
     * @param string $id
     * @return array
     * 
     */
    public function load($id){
 
        $tmp = apc_fetch($id);
        if (is_array($tmp)) {
            return $tmp[0];
        }
        return false;
    }
 
    /**
     * Delete cache by Key.
     *
     * @param string $id
     * @return boolean
     */
    public function remove($id){
 
        return apc_delete($id);
    }
}
 
?>

Използва се по следния начин:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$lifetime = 3500;
 
$cache = new APCCahce($lifetime);
 
if(!$count = $cache->load('count_category')){
   $count = GetCount(); // трябва да връща резултата от MySQL query-то.
   $cache->save($count, 'count_category')
}
 
?>

Така се прави проверка дали кеш-а съществува, ако го няма се създава, при следващото извикване заявката няма да се изпълни и ще бъде зареден кеш-а. ;)

Tags: ,

Comments No Comments »

Случвало ли ви се е да ползвате:

header('Location: http://google.com/');

и в този момента да ви се отговори:

Cannot modify header information - headers already sent by …

и тогава се налага да го заменяте с meta redirect или някакъв redirect с javascript, а също и ob_start(); ob_end_flush(); което си е дразнещо.

Ето една алтернатива:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
function redirect($url){
   if (!headers_sent()){
     header('Location: '.$url);
   } else {
     echo '<script type="text/javascript">';
     echo 'window.location.href="'.$url.'";';
     echo '</script>';
     echo '<noscript>';
     echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
     echo '</noscript>';
  }
}
 
?>

Тази функция проверява дали са изпратени header-ите, ако не са redirect-ва с PHP функцията “header”, ако са изпратени вече redirect-a се прави с javascript, а ако по някаква случайност потребителя няма support на javascript, redirect-a става с meta refresh на HTML

За тези които умуват още, ползва се така:

redirect('http://google.com/');

Tags: ,

Comments No Comments »

Това е първия ми пост в първия ми блог и като за такъв е трудно за измисля какво да пиша.

Да започнем с малко лична информация :)

За тези които незнаят казвам се Венелин Кочев от гр. Раковски ( пояснявам ;) ) на 21 години, работя като PHP програмист, уча в ПУ (ФМИ), интересувам се от web development, linux-и, mysql-и, apache-та и подобни  … стига толкоз, че се увлякох :) … ако не ви стига информацията насочете се към Контакт ;)

Не е тайна, че този блог се движи от wordpress (поне за момента latest) с Mandigo theme … е мисля че е достатъчно за първи пост … to be continued

Tags: ,

Comments 1 Comment »