'cmd_synonimy', 'synonim' => 'cmd_synonimy', 'syn' => 'cmd_synonimy', 's' => 'cmd_synonimy', ); } static function help($cmd = NULL) { if($cmd === NULL) { GGapi::putRichText('synonimy ', TRUE); GGapi::putRichText('słowo', FALSE, TRUE); GGapi::putRichText("\n".' Synonimy słowa '); GGapi::putRichText('słowo'."\n", FALSE, TRUE); } else { GGapi::putRichText('synonimy ', TRUE); GGapi::putRichText('słowo', FALSE, TRUE); GGapi::putRichText(' (aliasy: '); GGapi::putRichText('s, syn, synonim', TRUE); GGapi::putRichText(')'."\n".' Podaje synonimy słowa '); GGapi::putRichText('słowo'."\n\n", FALSE, TRUE); GGapi::putRichText('Przykład', FALSE, FALSE, TRUE); GGapi::putRichText("\n".'synonimy abecadło'."\n".'synonimy wyspa'); } } static function cmd_synonimy($nazwa, $args) { if(!$args) { GGapi::putText('Funkcja '); GGapi::putRichText('synonimy', TRUE); GGapi::putRichText(' wymaga argumentu '); GGapi::putRichText('słowo'."\n\n", FALSE, TRUE); GGapi::putRichText('Przykład', FALSE, FALSE, TRUE); GGapi::putRichText("\n".'synonimy abecadło'."\n".'synonimy wyspa'); return; } $args = funcs::utfToAscii(trim($args)); $fp = fopen('./data/synonimy/thesaurus.res', 'r'); list($rows, $len) = explode('x', trim(fgets($fp, 50))); $start = ftell($fp); $l = 0; $p = $rows-1; while($l<$p) { //echo 'L: '.$l.' - P: '.$p."\n"; $s = floor(($l+$p)/2); $poz = $start + ($s*$len); fseek($fp, $poz); $line = fread($fp, $len); $word = strtok($line, ';'); $cmp = strcmp($word, $args); if($cmp >= 0) { //echo 'Right'."\n"; $p = $s; } else { //echo 'Left'."\n"; $l = $s+1; } } $poz = $start + ($l*$len); fseek($fp, $poz); $i = 1; $return = ''; while(TRUE) { $line = fread($fp, $len); $word = strtok($line, ';'); if($word != $args) break; $return .= "\n".($i++).'. '.rtrim(substr(strstr($line, ';'), 1)); } if(!empty($return)) { GGapi::putText('Znalezione synonimy:'.$return); } else { GGapi::putText('Nie znaleziono synonimów podanego słowa'); } } } ?>