Google Hejesírás
kód
Minden itt található anyagot a GNU General Public License véd.
<?
$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, $errstr, 30);
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($fp, 4096);
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 „nép”), 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>
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