Google Hejesírás
kód

Minden itt található anyagot a GNU General Public License véd.


index.php (Cucu)

<?
$kezdo_ido
=time();

if (isset(
$_REQUEST['szo'])) if (isset($_REQUEST['csekk'])) {
    if (
strlen(trim($_REQUEST['szo']))) header('Location: ?szo='.urlencode($_REQUEST['szo']));
    else 
header('Location: .');
    exit;
}
if (isset(
$_REQUEST['szavak'])) if (isset($_REQUEST['tobbcsekk'])) {
    if (
strlen(trim($_REQUEST['szavak']))) header('Location: ?szavak='.urlencode($_REQUEST['szavak']));
    else 
header('Location: .');
    exit;
}

function 
ekezettelenit($mit) {
    
$trans=array(
    
'á'=>'a',
    
'Á'=>'A',
    
'é'=>'e',
    
'É'=>'E',
    
'í'=>'i',
    
'Í'=>'I',
    
'ó'=>'o',
    
'Ó'=>'O',
    
'ö'=>'o',
    
'Ö'=>'O',
    
'ő'=>'o',
    
'Ő'=>'O',
    
'ú'=>'u',
    
'Ú'=>'U',
    
'ü'=>'u',
    
'Ü'=>'U',
    
'ű'=>'u',
    
'Ű'=>'U'
    
);
    return 
strtolower(strtr($mit,$trans));
}

if (isset(
$_REQUEST['utf8szavak'])) $_REQUEST['szavak']=utf8_decode($_REQUEST['utf8szavak']);
if (isset(
$_REQUEST['utf8szo'])) $_REQUEST['szo']=utf8_decode($_REQUEST['utf8szo']);

$k=0;unset($hibalista);
$handle fopen ('nyelvek/hu.ny'"r");
while (
$buffer=fgets($handle,4096)) {
    
$buffer=substr($buffer,0,-2);
    if (
strlen($buffer)>0) {
        
$tmp=explode("\t",$buffer);
        for(
$i=0;$i<count($tmp);$i++)
        for(
$j=0;$j<count($tmp);$j++)
        if (
$i!=$j) {
            
$hibalista[$k++]=$tmp[$i];
            
$hibalista[$k++]=$tmp[$j];
        }
    }
}
fclose ($handle);

for(
$i=0;$i<count($hibalista)/2;$i++) {
    
$egyik_hiba[$i]=$hibalista[2*$i];
    
$masik_hiba[$i]=$hibalista[2*$i+1];
}
$hanyhiba=count($egyik_hiba);
for(
$i=0;$i<$hanyhiba;$i++) {
    
$egyik_hiba[$hanyhiba+$i]=$masik_hiba[$i];
    
$masik_hiba[$hanyhiba+$i]=$egyik_hiba[$i];
}
$hanyhiba=count($egyik_hiba);

function 
kisbetu($kbis) {
    return 
strtr(strtolower($kbis),'ÁÉÍÓÖŐÔÚÜŰ','áéíóöőôúüű');
}

function 
frissitsd_a_kest($melyiket,$ujgyak) {
    
$eredmeny=mysql_query('select * from hejes_cache where szo="'.mysql_real_escape_string($melyiket).'"') or die();
    
$auxsor=mysql_fetch_array($eredmeny);
    if (
$auxsor) {
        
$ide=$auxsor['id'];
    } else {
        
$eredmeny=mysql_query('insert into hejes_cache (szo) values("'.mysql_real_escape_string($melyiket).'")') or die();
        
$eredmeny=mysql_query('select last_insert_id()') or die();
        
$ujc=mysql_fetch_array($eredmeny);$ide=$ujc[0];
    }
    
$eredmeny=mysql_query('update hejes_cache set gyakorisag="'.$ujgyak.'" where id="'.$ide.'"') or die();
    
$eredmeny=mysql_query('update hejes_cache set frissites="'.date("Y-m-d H:i:s").'" where id="'.$ide.'"') or die();
}

function 
hanyszor($micsoda) {
    
$GLOBALS['kes']=0;
    
$eredmeny=mysql_query('select * from hejes_cache where szo="'.mysql_real_escape_string($micsoda).'"') or die();
    
$auxsor=mysql_fetch_array($eredmeny);
    if (
$auxsor) {
        
$frissites=$auxsor['frissites'];
        
$frisstamp=mktime(substr($frissites,11,2), substr($frissites,14,2), substr($frissites,17,2), substr($frissites,5,2), substr($frissites,8,2), substr($frissites,0,4));
        
$mostamp=time();
        if (
$mostamp-$frisstamp<60*60*24*30$GLOBALS['kes']=1;
    }
    if (
$GLOBALS['kes']) {
        return 
$auxsor['gyakorisag'];
    } else {
        
$keresett_cucc=urlencode(utf8_encode($micsoda));
        
$fp fsockopen('ajax.googleapis.com'80$errno$errstr30);
        if (!
$fp) {echo "$errstr ($errno)<br />\n";exit;}
        
$out "GET /ajax/services/search/web?v=1.0&q=%22$keresett_cucc%22&hl=hu HTTP/1.1\r\n";
        
$out .= "Host: ajax.googleapis.com\r\n";
        
$out .= "Referer: hejes.szerver.org\r\n";
        
$out .= "Connection: Close\r\n\r\n";
        
fwrite($fp$out);
        
$er='';
        while(!
feof($fp)) $er.=fgets($fp4096);
        
fclose($fp);
        
$x=strpos($er,'estimatedResultCount');
        if (
$x===false) return 0;
        
$reszlet=substr($er,$x+23);
        
$reszlet=substr($reszlet,0,strpos($reszlet,'currentPageIndex')-3);
        return (int)
$reszlet;
    }
}

$mit=kisbetu($_REQUEST['szo']);
$tisztan='';
for(
$i=0;$i<strlen($mit);$i++) if (strpos('[](){}.?!,;:=+*/"\'\\',$mit[$i])===false$tisztan.=$mit[$i];
$mit=str_replace('-',' ',$tisztan);
$szo=$mit;$mit='['.$mit.']';

if (
$mit!='[]') {

$varik=array(array($mit,0,0));$keresve=$mit;

$elvalszam=0;$hanydb=1;
for(
$i=0;$i<strlen($mit);$i++) if (($mit[$i]==' ')||($mit[$i]=='-')) { $elval[$elvalszam++]=$i;$hanydb*=/*3*/2;}
for(
$i=0;$i<$hanydb;$i++) {
    
$varik[$i]=array($mit,0,0);
    
$oszto=1;
    for(
$j=$elvalszam-1;$j>=0;$j--) {
        
$szamjegy=($i/$oszto)%2;$oszto*=2;
        if (
$szamjegy==0$varik[$i][0][$elval[$j]]=' ';
        if (
$szamjegy==1$varik[$i][0][$elval[$j]]='=';
    }
    for(
$j=0;$j<strlen($varik[$i][0]);$j++) if ($varik[$i][0][$j]=='='$varik[$i][0]=substr($varik[$i][0],0,$j).substr($varik[$i][0],$j+1);
}

for(
$i=0;$i<$hanyhiba;$i++) {
    for(
$j=0;$j<count($varik);$j++) $varik[$j][1]=0;
    for(
$j=0;$j<count($varik);$j++) if ($varik[$j][2]<2) {//max 2 hiba
        
$x=0;
        while(
$x!==false) {
            
$x=strpos($varik[$j][0],$egyik_hiba[$i],$varik[$j][1]);
            if (
$x!==false) {
                
$varik[$j][1]=$x+1;
                
$ujvar=(substr($varik[$j][0],0,$x).$masik_hiba[$i].substr($varik[$j][0],$x+strlen($egyik_hiba[$i])));
                
$ismetles=0;
                
$eddig=0;while(($eddig<count($varik))&&(!$ismetles)) { if ($varik[$eddig][0]==$ujvar$ismetles=1;$eddig++; }
                if (!
$ismetles) {
                    
$varik[count($varik)][0]=$ujvar;
                    
$varik[count($varik)-1][1]=$x+strlen($masik_hiba[$i]);
                    
$varik[count($varik)-1][2]=$varik[$j][2]+1;
                }
            }
        }
    }
}

}
//mit=[]

if ($_REQUEST['szavak']) {
    
$szolista=explode("\r\n",$_REQUEST['szavak']);
    for(
$j=0;$j<count($szolista);$j++) {
        
$mit=kisbetu($szolista[$j]);
        
$tisztan='';
        for(
$i=0;$i<strlen($mit);$i++) if (strpos('[](){}.?!,;:*=+/"\'\\',$mit[$i])===false$tisztan.=$mit[$i];
        
$mit=str_replace('-',' ',$tisztan);
        
$varik[$j][0]='['.$mit.']';
        
$szolista[$j]=$mit;
    }
    
$szotomb=implode("\r\n",$szolista);
}

if ((
$_REQUEST['szo'])||($_REQUEST['szavak'])) {
    
$osszgyak=0;$hany_kes=0;
    for(
$j=0;$j<count($varik);$j++) {
        
$valtozat[$j]=$varik[$j][0];
        
$gyakorisag[$j]=hanyszor(substr($varik[$j][0],1,-1));
        if (!
$GLOBALS['kes']) frissitsd_a_kest(substr($valtozat[$j],1,-1),$gyakorisag[$j]);else $hany_kes++;
        
$osszgyak+=$gyakorisag[$j];
    }
}

$veg_ido=time();

?>
<? 
include('fejlec.php'); ?>
<p align=center>
<font style="font-size: 48pt">Google Hejesírás</font>
<br>
<font style="font-size: 8pt">(verzió 0.0)</font>
</p>
<p>
<form action="index.php" method="get">
<table border=0 cellpadding=0 cellspacing=0 align=center><tr align=center><td>
<input type=text name="szo" size="40" value="<? echo $szo;?>">
</td></tr><tr align=center><td>
<input type=submit name="csekk" value="Hogy írják ezt a szót?">
</td></tr></table>
</form>
</p>
<p>
<form action="index.php" method="get">
<table border=0 cellpadding=0 cellspacing=0 align=center><tr align=center><td>
<textarea name="szavak" cols="30" rows="4"><? echo $szotomb;?></textarea>
</td></tr><tr align=center><td>
<input type=submit name="tobbcsekk" value="A fentiek közül melyik a helyes?">
</td></tr></table>
</form>
</p>
<p align=center>
<?
if ($osszgyak>0) {
    echo 
'<font style="font-size: 8pt">Futási idő: kb. '.($veg_ido-$kezdo_ido).' mp<br>'."\n";
    echo 
'('.number_format($hany_kes/count($varik)*100,0,'','').'%-ban cache-sel gyorsítva)<br>'."\n";
    echo 
'Találatok száma: '.number_format($osszgyak,0,'',' ').'</font><br><br>'."\n";
    
$eredmeny=mysql_query('update hejes_cache set keresve=keresve+1 where szo="'.mysql_real_escape_string(substr($keresve,1,-1)).'"') or die();
    
array_multisort($gyakorisag,SORT_DESC,$valtozat);
    echo 
'<table cellpadding=1 cellspacing=1 border=0>'."\n";
    for(
$j=0;$j<count($valtozat);$j++) if ($gyakorisag[$j]>0) {
        echo 
'<tr align=left>';
        echo 
'<td align=right style="font-size: 8pt">';
        echo 
number_format($gyakorisag[$j]/$osszgyak*100,0,',','').'%';
        echo 
'</td>';
        echo 
'<td align=right style="font-size: 8pt; color: #a0a0a0">';
        echo 
'('.number_format($gyakorisag[$j],0,',','').')';
        echo 
'</td>';
        if (
$j==0) echo '<td style="font-size: 16pt">';else echo '<td>';
        
$eredmeny=mysql_query('select count(1) from nsz_def where szo_ektelen="'.mysql_real_escape_string(ekezettelenit(substr($valtozat[$j],1,-1))).'"') or die();
        
$auxsor=mysql_fetch_array($eredmeny);
        if (
$auxsor[0]>0) echo '<a href="http://nepszotar.com/?szo='.utf8_encode(substr($valtozat[$j],1,-1)).'" title="Nézd meg a szó jelentését a Népszótárban!" target="_blank">';
        echo 
substr($valtozat[$j],1,-1);
        if (
$auxsor[0]>0) echo '</a>';
        echo 
'</td>';
        echo 
'</tr>'."\n";
    }
    echo 
'</table>';
} else echo 
'Nincs találat.';
?>
</p>
<p align=left style="font-size: 10pt">
ihlette: <u>Tcherno</u>
<br>
írta: <a href="http://bitfeldolgozo.hu/" target="_blank">Cucu</a>
<br>
a háttérben fut: <a href="http://www.google.hu/" target="_blank">Google</a>
<br>
működés módja: <a href="about.php">ilyen</a>
<br>
fórum: <a href="forum.php">itt</a>
<br>
kód: <a href="kod.php">nagyjából</a>
<br>
<br>
hoszting: <a href="http://bitfeldolgozo.hu/" target="_blank">Központi Bitfeldolgozó Kft.</a>
<br>
kiemelt partner: <a href="http://nepszotar.com/" target="_blank">Népszótár</a>
<br>
szerverpartner: <a href="http://szerver.org/" target="_blank">szerver.org</a> 
<br>
kudos: <a href="http://index.hu/tech/net/hejes041104" target="_blank">Index</a>
</p>
<p align=justify style="font-size: 8pt">
Felhívom a T. látogató figyelmét, hogy a helyesírás kanonikus forrása nem a <a href="http://www.google.hu/" target="_blank">Google</a> (azaz a &bdquo;nép&rdquo;), hanem a <a href="http://www.nytud.hu/" target="_blank">Magyar Tudományos Akadémia</a> (azaz a nyelvészek és a magyartanárok). Akit az előbbi érdekel, használja nyugodtan ezt az oldalt, akit az utóbbi, keresse fel <a href="http://linguistics.elte.hu/people/Balazs_Geza/" target="_blank">Balázs Gézá</a>t! A kettő viszonyáról pedig kérdezze meg <a href="http://hu.wikipedia.org/wiki/N%C3%A1dasdy_%C3%81d%C3%A1m" target="_blank">Nádasdy Ádám</a>ot!
</p>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1790323-4";
urchinTracker();
</script>
</body>
</html>

nyelvek/hu.ny (Cucu)

ccs    cscs
ddz    dzdz
ddzs    dzsdzs
ggy    gygy
lly    lyly
nny    nyny
ssz    szsz
tty    tyty
zzs    zszs

i    í
o    ó
ö    ő    ô
u    ú
ü    ű

ok]    om]
ek]    em]
nák]    nék]
val]    vel]
ban]    ben]
nál]    nél]
ót]    ovat]
ót]    avat]
ók]    ovak]
ók]    avak]
t]    tt]
i]    y]

cc    tsz
cs    ts
dt    tt
f    ph
gk    kk
gl    kl

gy    ggy    gyj    dj

egy    eggy
j    ly    lj
k    kk
l    ll
lr    rr
mb    nb
mp    np
mm    nm

ny    nny    nj    nyj

sz    ssz
szt    zt
szd    zd
ty    tj
x    ksz    gz

vissza