Mors Sınıfı ile Gelişmiş Mors Alfabesine ve Yazıya Çevirme

PHP
71 lines
<?php
class Mors{
private static $mors=array(
"a"=>".-","b"=>"-...","c"=>"-.-.","d"=>"-..","e"=>".","f"=>"..-.","g"=>"--.",
"h"=>"....","i"=>"..","j"=>".---","k"=>"-.-","l"=>".-..","m"=>"--","n"=>"-.",
"o"=>"---","p"=>".--.","q"=>"--.-","r"=>".-.","s"=>"...","t"=>"-","u"=>"..-",
"v"=>"...-","w"=>".--","x"=>"-..-","y"=>"-.--","z"=>"--..","1"=>".----",
"2"=>"..---","3"=>"...--","4"=>"....-","5"=>".....","6"=>"-....","7"=>"--...",
"8"=>"---..","9"=>"----.","0"=>"-----"," "=>" ","."=>".-.-.-",","=>"--..--",
"?"=>"..--..","!"=>"..--.",":"=>"---...","'"=>".----.","\""=>".-..-.",
"="=>"-...-","EOM"=>".-.-."
);
private static $yazis=array();
static function kelime($kelime){
mb_strtolower($kelime);
$kelime = str_replace("&", "&", $kelime);
$kelime = preg_replace("/&([a-z]+);/", "", $kelime);
$kelime = str_replace(
array("$","^","*",";","%","~","@","#","[","]","<",">","\\","/","+"),
"", $kelime);
$kelime = str_replace(
array('_',"&",'ç','ş','ı','í','ì','î','ï','ú','ü','ù','û','á','ä','â','à','â','ó','ö','ò','ô','ô','ğ'),
array("-","ve",'c','s','i','i','y','y','i','u','u','u','u','a','a','a','a','a','o','o','o','o','o','g'), $kelime);
return strtolower($kelime);
}
static function MorsaCevir($kelime) {
$kelime=Mors::kelime($kelime);
$yazdir = "";
for ($i = 0; $i < strlen($kelime); $i++) {
$yazi = substr($kelime,$i,1);
// ignore unknown harfacters
if (self::$mors[$yazi] == "") continue;
$yazdir .= (self::$mors[$yazi]." ");
}
return trim($yazdir);
}
static function YaziyaCevir($kelime) {
$kelime = strtolower($kelime);
reset(self::$mors);
while (list($yazi,$kod) = each(self::$mors)) {
self::$yazis[$kod] = $yazi;
}
$yazdir = "";
$kelimeler = array();
$harfler = array();
$kelimeler = preg_split("/".self::$mors[" "]."/", $kelime, -1, PREG_SPLIT_NO_EMPTY);
foreach ($kelimeler as $kelime) {
$harfler = array_merge($harfler, preg_split("/ /", $kelime, -1, PREG_SPLIT_NO_EMPTY));
$harfler[] = '';
}
$harfler[count($harfler)-1] = self::$mors["EOM"];
foreach ($harfler as $harf) {
// ignore unknown harfacters
if ($harf == "") {
$yazdir .= " ";
}
if ($harf == self::$mors["EOM"]) {
break;
}
if (@self::$yazis[$harf] == "") {
continue;
}
$yazdir .= self::$yazis[$harf];
}
return trim($yazdir);
}
}
echo $mors=Mors::MorsaCevir('Bu bir deneme yazısıdır');
echo '<br>';
echo Mors::YaziyaCevir($mors);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
2 lines
-... ..- -... .. .-. -.. . -. . -- . -.-- .- --.. .. ... .. -.. .. .-.
bu bir deneme yazisidir
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Kelime Kökü Aramak

index.php

PHP
39 lines
<?php
header('Content-type: text/html; charset=utf-8');
class Kok {
var $kayityukle;
function Kok() {
if (file_exists("kontrol.dat")) {
$dosya = file("kontrol.dat");
foreach ($dosya as $l => $v) {
$w = explode(":",$v);
if (count($w) >= 3) {
$eylemler = $w[2];
$this->kayityukle[] = array('tip' => $w[0],'duzensiz' => $w[1],'eylem' => $eylemler);
}
}
}
else die("Dosya kontrol.dat mevcut değil veya okunamaz!");
}
function eslestir($metin,$tip) {
foreach ($this->kayityukle as $id => $ar) {
echo "$metin ile ".$ar['duzensiz']." eşleştirmeye çalışıyorum<br>";
if (($ar['tip'] == $tip) && (strstr($metin,$ar['duzensiz']))) {
eval($ar['eylem']);
}
else {
echo "Düzensiz eşleşmiyor veya $tip != ".$ar['tip']."<br>";
}
}
}
}
$Kok = new Kok;
print_r($Kok->kayityukle);
echo "<p>";
$Kok->eslestir("hayatta tarz iyidir","a");
echo "<p>";
$Kok->eslestir("ben dünyayı yönetiyorum!","p");
echo "<p>";
$Kok->eslestir("ben dünyayı yönetiyorum! 2","a");
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

kontrol.dat

Text
2 lines
a:hayat:echo "$metin hayatla eşleşti tip a<br>";
p:dünya:echo "$metin eşleşti dünya tip p<br>";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
34 lines
Array
(
[0] => Array
(
[tip] => a
[duzensiz] => hayat
[eylem] => echo "$metin hayatla eşleşti tip a
";
)
[1] => Array
(
[tip] => p
[duzensiz] => dünya
[eylem] => echo "$metin eşleşti dünya tip p
";
)
)
hayatta tarz iyidir ile hayat eşleştirmeye çalışıyorum
hayatta tarz iyidir hayatla eşleşti tip a
hayatta tarz iyidir ile dünya eşleştirmeye çalışıyorum
Düzensiz eşleşmiyor veya a != p
ben dünyayı yönetiyorum! ile hayat eşleştirmeye çalışıyorum
Düzensiz eşleşmiyor veya p != a
ben dünyayı yönetiyorum! ile dünya eşleştirmeye çalışıyorum
ben dünyayı yönetiyorum! eşleşti dünya tip p
ben dünyayı yönetiyorum! 2 ile hayat eşleştirmeye çalışıyorum
Düzensiz eşleşmiyor veya a != a
ben dünyayı yönetiyorum! 2 ile dünya eşleştirmeye çalışıyorum
Düzensiz eşleşmiyor veya a != p
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Diziyi Metin Olarak Depolama ve Geri Dönüştürme

PHP
59 lines
<?php
class diziDepola{
function dizidenMetine($dizi,$baskila=0,$doldur='',$sekme=1) {
$t=null;
if (!$doldur) {
$metinDondur='array(';
}
$n=rand();
$calis[$n]=0;
for($i=0;$i<$sekme;$i++) {
$t.="\t";
}
foreach ($dizi as $anahtar => $deger) {
if (!$calis[$n]) {
$c='';
} else {
$c=', ';
}
$calis[$n]++;
if (is_array($deger)) {
$metinDondur.=$c."\n".$t.'\''.$anahtar.'\' => array('.dizidenMetine($deger,$baskila,1,$sekme+1);
continue 1;
}
$metinDondur.=$c."\n".$t.'\''.$anahtar.'\' => \''.$deger.'\'';
}
if (!$doldur) {
$metinDondur.=');'."\n";
} else {
$metinDondur.=')';
}
if ($baskila) {
return gzcompress($metinDondur, 9);
} else {
return $metinDondur;
}
}
function metindenDiziye($dizitxt,$baskicoz=0) {
if (!$dizitxt) {return array();}
if ($baskicoz) {
eval('$return_array = '.gzuncompress($dizitxt));
return $return_array;
} else {
if (!eval('$return_array = '.$dizitxt)) {
print '<h2>metindenDiziye HATA</h2>';
print $dizitxt;exit;
}
return $return_array;
}
}
}
$diziDepola = new diziDepola;
$baskila = 1;// (0 veya 1)
$dizi=array("merhaba nasilsiniz",1,23,6);
$dizi_text = $diziDepola->dizidenMetine($dizi,$baskila);
echo $dizi_text."<br>";
$baskicoz = 1;// (0 veya 1)
$dizi = $diziDepola->metindenDiziye($dizi_text,$baskicoz);
print_r($dizi);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
2 lines
xÚK,*J¬ÔàâT7PW°µSPÏM-ÊHLJTÈK,ÎÌ)ÎÌˬR×QJ·B¤ !<#·ÏÈ·Â5†pÍÔ5·¹T•··
Array ( [0] => merhaba nasilsiniz [1] => 1 [2] => 23 [3] => 6 )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX