V Archívu máš možnost shlédnout všechny texty rozdělené podle kategorií, a členěné podle roků a měsiců kdy byly napsány. Na úvodu vidíš texty tohoto měsíce. Výběr ostatních měsíců je vpravo.
Všechny texty o PHP, scriptech atd.
Vybrány texty, jejichž autorem je Jiří Petřek a patří do kategorie PHP.
Při programování (zvyšování efektivity) Keywords Generátoru mě napadla delikátní věc
, zařadit k němu i vyhladávání synonym a implementovat ohýbání slov. Jenže jak to udělat, žádný česlý free slovník podobného rázu podle pana Gůgla neexistuje a vyrabět vlastní by bylo nad mé češtinářské síly
. Ale když už jsem si to umanul, tak jsem to prostě musel mít. Nakonec mě trklo jak na to a musim říct nepotřeboval jsem k tomu žádne složité konstrukce. Stačilo trocha regulárních vyrázů, práce s polem, vyhledávač www.jyxo.cz a jsou z toho dvě celkem šikovné funkce
.
Funkce už zase funguji chyba by měla být vyřešena. Jen chci upozornit na to, že synonyma a ohýbání slov by bylo dobré cachovat, jelikož při větším počtu slov je neunosne pokaždé ziskávat fraze.
Nejprvé kód, vysvětlím zaokamžik.
function vratSynonyma($slovo, $cp)
{
$slovo = trim($slovo);
$cont = file_get_contents('http://jyxo.cz/s?q=' . urlencode(iconv($cp, 'UTF-8', $slovo)) . '&d=cz');
$cont = iconv('UTF-8', $cp, $cont);
$cont = strip_tags($cont, '<br>');
$reg = 'Synonyma'.$slovo.': (.+)(, \(vše\))?<br><br>';
preg_match_all("!$reg!", $cont, $arrSyn);
$arrSynonyma = explode(',', $arrSyn[1][0]);
$arrSynonyma = array_map('trim', $arrSynonyma);
if($arrSynonyma[count($arrSynonyma)-1]=="(vše)"){
unset($arrSynonyma[count($arrSynonyma)-1]);
}
return $arrSynonyma;
}
Tato funkce pracuje na principu toho, že z www.jyxo.cz stáhné stránku s vyhledávaným slovem (když si v jyxu necháte cokoliv vyhledat, v pravém sloupci máte vyčet synonym a ohýbání slova). Jako vstupní hodnota je slovo, ke kterému hledáme synonyma a jako druhá hodnota je kodování vašeho scriptu. Vrací pole hodnot. Pomoci regulárního výrazu vyjmu jen potřebnou část, kterou pak rozdělím podle čárek. Za zmínku stojí funkce array_map, tato funkce aplikuje na všechny prvky pole uvedené v 2 parametru funkci uvedenou v parametru 1.
Pozn.: Zakomentovaný řadek odkomentujte v případě toho, že máte stránku v jiném kódování než UTF-8 a na místo požadovaného CP napište vaše kódování.
function ohybejSlovo($slovo, $cp)
{
$slovo = trim($slovo);
$cont = file_get_contents('http://jyxo.cz/s?q=' . urlencode(iconv($cp, 'UTF-8', $slovo)) . '&d=cz');
$cont = iconv('UTF-8', $cp, $cont);
$cont = strip_tags($cont);
$reg = 'Ohýbání(.+): (.+)\. ';
preg_match_all("!$reg!", $cont, $arrSyn);
$arrSynonyma = explode(',', $arrSyn[2][0]);
$arrSynonyma = array_map('trim', $arrSynonyma);
return $arrSynonyma;
}
Pro tuto funkci platí úplně to samé, co pro funkci první s tím rozdílem, že je jiný regulární výraz.
Funkce můžete vyzkoušet na adrese
http://scripty.jur4.net/synonyma-ohybani/.
Pokud chcete zadat vlastni slovo použijte adresu
http://scripty.jur4.net/synonyma-ohybani/?slovo=vaseslovo,
defaultně je nastaveno slovo lampa
P.S. Funkce nebudou fungovat bez přistupu k netu. Pak by pravděpodobně funkce file_get_contents vratila chybu.