Ще ви покажа няколко трика за максимално точно търсене в http://dirimp3.com , за да намирате това което търсите.
В думите които пишете в търсачката е разрешено да се използват и няколко помощни знаци това са:
кавички ( ” ) - Дума оградена с кавички, търсачката ще търси точно фразата между кавичките.
Пример: “latin lovers” изкарва всички песни, които съдържат фразата latin lovers в името на песента или линка към нея.
звезда ( * ) - Много е полезно ако знаете само част от името на песента. Символите след * , търсачката не ги взима под значение.
Пример: rock* ще покаже песни, които съдържат фрази като rocked, rocking и rockнещоси в името на песента или линка.
минус ( – ) - Когато търсите песен с повече от една фраза и ако го поставите пред една от двете думи, тя ще бъде изключена от търсенето.
Пример: latin -lovers ще покаже всички песни които съдържат latin, но без думата lovers в името на песента или линка.
плюс ( + ) – Също е добре да се използва в търсене с повече от една фраза. Плюс пред една от думите ще даде по голям приоритет на думата.
Пример: latin +lovers – ще покаже всички песни които съдържат думата latin но и такива които съдържат само думата lovers или и двете в името на песента или линка.
Приятно търсене!
Премахването на 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();
Ако използвате 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 метод.
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')
}
?>
Така се прави проверка дали кеш-а съществува, ако го няма се създава, при следващото извикване заявката няма да се изпълни и ще бъде зареден кеш-а.
Случвало ли ви се е да ползвате:
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/');
Това е първия ми пост в първия ми блог и като за такъв е трудно за измисля какво да пиша.
Да започнем с малко лична информация
За тези които незнаят казвам се Венелин Кочев от гр. Раковски ( пояснявам
) на 21 години, работя като PHP програмист, уча в ПУ (ФМИ), интересувам се от web development, linux-и, mysql-и, apache-та и подобни … стига толкоз, че се увлякох
… ако не ви стига информацията насочете се към Контакт
Не е тайна, че този блог се движи от wordpress (поне за момента latest) с Mandigo theme … е мисля че е достатъчно за първи пост … to be continued