Archive

Archive for April, 2008

Максимално точно търсене в dirimp3.com

April 19th, 2008 Venelin Kochev No comments

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

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

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

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

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

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

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

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

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

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

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

Премахване на PHPSESSID

April 16th, 2008 Venelin Kochev 1 comment

Премахването на 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();

Categories: Apache, PHP Tags: , , ,

AJAX кеширане в Internet Explorer

April 11th, 2008 Venelin Kochev No comments

Ако използвате 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 метод. ;)

Categories: AJAX, IE, JavaScript Tags: , ,

Alternative PHP Cache

April 4th, 2008 Venelin Kochev No comments

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

APC Cache Class:

<?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);
    }
}
 
?>

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

<?php
 
$lifetime = 3500;
 
$cache = new APCCahce($lifetime);
 
if(!$count = $cache->load('count_category')){
   $count = GetCount(); // трябва да връща резултата от MySQL query-то.
   $cache->save($count, 'count_category')
}
 
?>

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

Categories: MySQL, PHP Tags: ,

PHP redirect

April 3rd, 2008 Venelin Kochev 1 comment

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

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

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

Cannot modify header information – headers already sent by …

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

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

<?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/');
Categories: HTML, JavaScript, PHP Tags: ,

Hello world!

April 2nd, 2008 Venelin Kochev 1 comment

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

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

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

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

Categories: Разни Tags: ,