Case insensitive in_array v PHP

PHP funkce in_array je case sensitive - což se nemusí vždy hodit. Občas potřebujete prohledat pole a nezáleží Vám na velikosti písmen u jeho prvků:

$array = array('a', 'B', 'cE');

function inArrayCaseInsensitive($needle, $array) {
 return (bool) preg_grep('/^' . preg_quote($needle, '/') . '$/i', $array);
}

inArrayCaseInsensitive('a', $array); // true
inArrayCaseInsensitive('A', $array); // true
inArrayCaseInsensitive('ce', $array); // true
inArrayCaseInsensitive('be', $array); // false

Funkce preg_grep má ještě zajímavý přepínač PREG_GREP_INVERT. Tímto přepínačem odfiltrujete všechny hodnoty v poli, které neodpovídají zadanému regulárnímu výrazu. Filtrace zachovává klíče pole.

$array = array('a', 'A', 'cE');

function filterArrayValues($needle, $array) {
 return preg_grep('/^' . preg_quote($needle, '/') . '$/i', $array, PREG_GREP_INVERT);
}

print_r(filterArrayValues('a', $array)); // vypíše jen cE

Snadné připojení k FTP pomocí PHP

Mám v oblibě zkrácený zápis připojení k FTP. PHP tento způsob zápisu připojení bohužel nepodporuje. Proto jsem napsal jednoduchou funkci, která patřičně rozebere zaslanou adresu, vytvoří nové připojení, přihlásí uživatele a změní cestu.

/**
 * Vraci ID FTP pripojeni na zaklade zadane URL
 * ftp://username:password@sld.domain.tld:21/path1/path2/
 */
function getFtpConnection($uri)
{  
  preg_match("/(?P<protocol>ftps?:\/\/)(?P<username>.*?):(?P<password>.*?)@(?P<url>.*?):?(?P<port>[1-9]+)?(?<dir>\/.*)/i", $uri, $match);
  $conn = ftp_connect($match['url'], empty($match['port']) ? 21 : (int)$match['port']) or die("Couldn't connect to " . $match['url']);
  if (ftp_login($conn, $match['username'], $match['password'])) {
    ftp_chdir($conn, $match['dir']);
    return $conn;
  }

  return null;
}

Výstupem funkce je samozřejmě ID připojení, se kterým pak můžete normálně pracovat dál. Funkci najdete také zde: https://gist.github.com/998091

Snadné vložené YouTube videa pomocí PHP

Následující PHP kód zamění jakýkoliv odkazu na YouTube video za vložený přehrávač. Prostřednictvím jediného regulárního výrazu se dokáží automaticky nahradit celkem čtyři různé formáty URL adresy za embed video přehrávač.

function youtube($string)
{
  return preg_replace(
    '#(http://(www.)?youtube.com)?/(v/|watch\?v\=)([-|~_0-9A-Za-z]+)&?.*?#i',
    '<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/$4" frameborder="0" allowfullscreen></iframe>',
    $string
  );
}

echo youtube('http://www.youtube.com/watch?v=VWsjWCt1PsQ');
echo youtube('http://youtube.com/watch?v=VWsjWCt1PsQ');
echo youtube('http://youtube.com/v/VWsjWCt1PsQ');
echo youtube('http://www.youtube.com/v/VWsjWCt1PsQ');

Zvýraznění právě hledaných slov ve Wordpress

Několik následujících řádků kódu obalí všechna právě vyhledávaná klíčová slova do značky STRONG (class search-keyword). Kód je možné vložit do function.php ve Vašem template. Nebo jej můžete vložit rovnou do search.php někde těsně za volání funkce get_header(). Předpokladem samozřejmě je, že využíváte standardních vyhledávacích funkcí Wordpress.

function omSearchHeighlight($text)
{
$keys = explode(" ", get_search_query());
$text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-keyword">\0</strong>', $text);
return $text;
}

add_filter('the_title','omSearchHeighlight');
add_filter('the_content','omSearchHeighlight');
add_filter('the_excerpt','omSearchHeighlight');

// nezapomeňte strong element nastylovat např.
// strong.search-keyword {background: #f3ff0f!important; color:#000!important;}

Výsledkem je malé, ale užitečné, vylepšení výsledků vyhledávání, které Vás navíc nestojí téměř žádnou námahu. Ještě malá poznámka na závěr: Kód nedbá na velikost písmen.

Význam barev

Všechny barvy ve vašem okolí na Vás nějak působí. Pokud navrhujete internetové stránky, je na to potřeba pamatovat dvojnásob. Barva dokáže návštěvníka oslovit a navodit ten správný pocit. Barvy se obecně dělí na barvy teplé, studené a neutrální. Teplé barvy jsou založené na odstínech žluté, hnědé, zeleno žluté a oranžové. Teplé barvy svoji podstatou vzrušují, mají tendenci upoutat pozornost. Na pomezí mezi teplou a studenou barvou je možné přiřadit odstíny zelené a fialové. Záleží jak moc obsahují červené nebo modré (RGB). Studené barvy jsou založeny na odstínech modré, zelené, fialové, modro-zelené, modro-červené. Tyto barvy mají tendenci uklidňovat, tišit. Na rozdíl od teplých barev, se dají barvy studené celkem úspěšně aplikovat na velké plochy. Mezi neutrální barvy patří bílá, šedá a černá. Pak celá řada barev, které obsahují velké množství šedé (barvy tmav0). Neutrální barvy dokáží zvýšit atraktivitu teplých barev. Velké množství barev je znepokojující (vezměte si např. kolotoče). Pro webové stránky je lepší použít nižší množství barev (ideálně 3-4). Barvy jsou často a právem spojovány s konkrétními vlastnostmi (Psychologie barev):

Modrá se tak logicky stává nejoblíbenější barvou firem (důvěra, klid, stabilita). Různé barvy se hodí k různým účelům. Například bílá je skvělá na pozadí, černá se zase používá pro text. Modrá dokáže dodat hloubku, červená dokáže upozornit atd. Všechno tohle mějte v hlavě (nebo na blogu :-)) pokud začínáte navrhovat web, komponujete mapu, připravujete reklamní letáky nebo se chystáte vymalovat byt.

Proč je hodnocení hvězdičkama blbost

Star Rating

Většina současných moderních webů používá tzv. hodnocení obsahu pomocí hvězdiček (star rating). Na tom by nebylo nic špatného, je dobré znát názory ostatních, často Vám to pomůže v rozhodování.

Jenže hvězdičkový koncept, tak jak je dneska používán, je postaven na velmi zavádějících datech.

Hned uvedu příklad, jak to myslím: Deset uživatelů zahlasuje 5 hvězdičkami, pro svůj oblíbený například Terminátor. A pro jiný film, například Forest Gump zahlasuje celkem 5000 osob, v průměru 4.5 hvězdy. Který film je favoritem?

Podle čistého hvězdičkového hodnocení, tak jak jej dnes používá většina současných serverů, je to Terminátor. Jenže to je špatně! Terminátor zaujal jen 10 lidí natolik, aby pro něj hlasovali, zatímco Forest Gump zaujal 5000 lidí. Proto by měl být Forest Gump v žebříčku na prvním místě. Mnohem průkažnější by bylo, kdyby se do hodnocení promítl také počet hlasujících.

Tento špatný koncept používá například: http://www.opensourcecms.com/.

Parkinsonův zákon

Parkinsonův zákon, nebo spíš zákony byly poprvé vydán v roce 1957. Jejich autorem je anglický profesor Cyril Northcote Parkinson. Tři nejpovedenější zákony praví:

  1. Práce roste úměrně s časem, který je na ni možno vynaložit; to, co je třeba udělat, nabývá na důležitosti a komplikovanosti v přímé proporci k vyhrazenému času.
  2. Výdaje rostou úměrně k příjmům.
  3. Rozrůstání plodí složitost a složitost plodí zánik.

Nejvíce se mi samozřejmě líbí zákon první. V překladu to znamená, že pokud na něco dostanete týden, budete to dělat týden. Pokud na to dostanete měsíc, budete to dělat přesně měsíc. Dalo by se to popsat, něco jako rozpínavost práce. Navíc čím více času něčemu věnujete, stává se to komplikovanějším a mnohdy také nepoužitelným. Pro příklady nemusíte chodit daleko, zkuste si vyplnit některé formuláře státní správy. Další oblast kde tento zákon bezezbytku platí je IT. Překlad těchto zákonů můžete sehnat i u nás”).

Tik v oku

Projevuje se jemným, ale častým a intenzivním, škubáním ve víčku oka. Způsobuje ho nejčastěji přepracování, nevyspání, nepřiměřený stres (nervy) nebo konzumace lehkých drog. Já k tomu přidávám, nevhodný monitor, nevhodné osvětlení, vnější rušivé elementy (hluk atd.) a častá práce u počítače. Trvání tohoto problému je různé, odhadem je to od 2 do 8 týdnů. Jak s tím bojovat:

Nejlepším vitamínem je B12 - k dostání v lékárně v podobě B-Komplex (Forte). Můžete konzumovat od 1 do 3 tablet denně. Výhodou B-komplex je to že neobsahuje jen B12 ale celou skupinu vitamínů B. Vitamín B12 také najdete v rybím tuku a nebo pivovarnických kvasnicích. Dalším vitamínem, který pomáhá je magnézium (hořčík). Pozor ať se nepředávkujete, působí to totiž i na srdce. Můžete si jej koupit v lékárně, ale mnohdy stačí i vhodná minerálka nebo banány. Když nic z toho nepomůže, bude asi lepší zajít za doktorem. Většinou to ale zmizí stejně rychle jak to příjde. Máte osobní zkušenost s tímto problémem?.

Schůze, porady, meetingy a briefing

Začal bych tím, co to vlastně schůze, porada, meeting nebo briefing je. Někteří je definují takto: nedobrovolná setkání nevhodných lidí, za účelem dohody o něčem, co není potřeba řešit. Četl jsem, že člověk stráví za svou pracovní kariéru na poradách něco kolem 6000 hodin, slouží obvykle pro výměnu informací v rámci organizace (firmy či podniku).

Všichni to určitě znáte, ráno přijdete do práce a kolega Vám povídá: Dneska je porada, nezapomeň na to! Doslova vidím, jak Vás tahle informace potěšila.

Faktem je, že 99 procent z nás porady nebo schůze nenávidí. Dalším faktem je, že ono zbývající 1 procento většinou vede organizaci :-). S poradami se to má takto:

Jsou příliš drahé

Jsou obvykle delší, než je potřeba

Setkávání se pro setkávání

Jsou neupřímné

After party po poradě

Porady vedou k dalším poradám

Proč se radit?

Na závěr ve zkratce několik zásad:

Jste hromádkář, nebo ne?

Během svého života jsem pochopil jednu věc, že lidé se dělí na hromádkáře a nehromádkáře. Typický hromádkář se vyznačuje tím, že štosuje věci do různě vysokých nevzhledných hromádek. Nejčastěji jsou to například:

Tyto nevzhledné hromádky poté hromádkáři umísťují náhodně do prostoru. Je lhostejno zda se jedná o kancelář nebo o domácnost. Každý hromádkář mi dá jistě za pravdu, že jeho nejoblíbenějším místem je v obou případech pracovní stůl. Těžké případy hromádkářství pak umísťují své hromady dokonce na podlahu! Zvláště těžkými formami hromádkářství trpí většina příslušníků IT komunity. Ti zpravidla vrší cokoliv kamkoliv. Oblíbeným materiálem k tvorbě hromádek bývá také oblečení. Hromádky tohoto typu jsou nejčastěji umísťovány na postel, židle nebo křesla. Specifikem některých hromádkářů je to, že nedodržují druhovou skladbu hromádek. Prostě vytváří nehomogenní směsici všeho možného. Většina hromádkářů se však snaží dodržovat alespoň minimální pravidla. Lehkou formou hromádkářství je tzv. skryté hromádkářství - postižení se snaží své hroádky skrýt před svým okolím do skříní, pod postele nebo kamkoliv jinak, kde není vidět. Několik rad jak s tím bojovat - snažte se veškeré rovné povrchy udržovat čisté (bez hromádek)

Uvědomte si, že cokoliv vyhodíte- nikdy už to nebudete muset uklízet

Není to skvělý pocit!!!