Rastgele Şifre Oluşturma,Tuzlu Şifreleme ve Doğrulama

<?php
class Sifre {
	var $tuz;
  function sifrele($sifre, $tuz = '') {
		$this->tuz=$tuz;
    $buyu = '$1$';
    $karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    if (strlen($this->tuz) < 8) {
      mt_srand ((double) microtime() * 1000000);
      for ($i = 8; $i > strlen($this->tuz);) {
        $this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
      }
    }
    $passwd = crypt($sifre, $buyu . $this->tuz);
    return($passwd);
  }
  function kontrol($sifre, $sifreli) {
    $test = $this->sifrele($sifre, substr($sifreli, 3, 8));
    if ($test == $sifreli) {
      return(true);
    }else{
      return(false);
    }
  }
  function rastgeleSifreUret() {
    $karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    $this->tuz=mt_srand ((double) microtime() * 1000000);
    for ($i = 8; $i > strlen($this->tuz);) {
      $this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
    }
    return($this->tuz);
  }
}
$p = new Sifre;
echo $rastgele= $p->rastgeleSifreUret();
echo "<br>";
echo $sifreli = $p->sifrele($rastgele,$tuz=rand(1,2));
echo "<br>";
if ($p->kontrol($rastgele,$sifreli)) {
echo "Doğru Şifre";
}else{
echo "Hatalı Şifre";
}
?>

Çıktısı

h95Pjaec
$1$1xuDtzzC$VcOdiz8wCJRBZgdHhYjWt1
Doğru Şifre

 

Sayfa Performans Sınıfı

<?php 
class performans{
	var $basla;
	var $bitir;
	var $toplam;
	function getir(){
		$mtime = microtime();
		$mtime = explode(" ", $mtime);
		$mtime = doubleval($mtime[1]) + doubleval($mtime[0]);

		return $mtime;
	}
	function basla(){
			$this->basla = $this->getir();
	}
	function bitir(){
			$this->bitir = $this->getir();
	}
	function yazdir(){
			$basla = $this->basla;
			$bitir = $this->bitir;
			$toplam = sprintf("%.4f", abs($basla - $bitir));

			return $toplam;
	}
}
$p = new performans();
$p->basla();
for($x=0;$x<3300000;$x++)if($x%1000000 == 0)echo $x;
$p->bitir();
echo("<br>Sayfa toplam " . $p->yazdir() . " saniyede yüklendi");
?>

Çıktısı

0100000020000003000000
Sayfa toplam 1.0591 saniyede yüklendi

 

İki Tarih Arasındaki Farkı Gün, Saat, Dakika ve Saniye Olarak Hesaplamak

<?php
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Istanbul');
class tarihfarki{
	public $tarih1, $tarih2, $a, $gun, $saat, $dakika, $saniye;
	function __construct($tarih1, $tarih2){
		$this->tarih1 = $tarih1;
		$this->tarih2 = $tarih2;
		$this->gun = intval((strtotime($this->tarih1) - strtotime($this->tarih2)) / 86400);
		$this->a = ((strtotime($this->tarih1) - strtotime($this->tarih2))) % 86400;
		$this->saat = intval(($this->a) / 3600);
		$this->a = ($this->a) % 3600;
		$this->dakika = intval(($this->a) / 60);
		$this->a = ($this->a) % 60;
		$this->saniye = $this->a;
	}
}
$sonuc = new tarihfarki("01.01.2007 11:02:02", "20.12.2006 10:00:00");
echo $sonuc->gun . ' gün ' . $sonuc->saat . ' saat ' . $sonuc->dakika . ' dakika ' . $sonuc->saniye . ' saniye';
?>

Çıktısı

12 gün 1 saat 2 dakika 2 saniye

Bonus

Bulunduğunuz Yerin Saatini Öğrenmek için https://www.google.com.tr/search?q=between+time

Dinamik Parametreler Listesiyle İşlev Çağırmak

Bu sınıf, dinamik olarak oluşturulmuş bir parametre listesi ileten bir işlevi çağırmak için kullanılabilir. Bir fonksiyonun ismini, isteğe bağlı bir nesneyi ve parametrelerin listesini içeren bir diziyi alabilir ve nesnenin belirtilen fonksiyonunu çağırır. Sınıf, işlev parametrelerini belirlemek için reflection API’sini kullanır ve bir dizideki argüman olarak iletilen parametre değerlerini kullanarak, cevapsız parametreleri karşılık gelen varsayılan değerlerle doldurarak işlevi çağırır.

<?php
class dinamikParametreler{
	function cagir($g, $ps = array()) {
    $fPar = $this->getPar($g);		    
    foreach($ps as $arg=>$value){$fPar[$arg]=$value;}
    return call_user_func_array($g, array_values($fPar));
	}
	function getPar($g) {
	  $refNesne = $this->getRef($g);
	  $ps = array();
	  foreach ($refNesne->getParameters() as $pr) {
	    if($pr->isOptional())$ps[$pr->name] = $pr->getDefaultValue();
		  else $ps[$pr->name] = null;
		}
		return $ps;
	}
	function getRef($g){
	  if (is_array($g)) $f = new ReflectionMethod($g[0], $g[1]);
	  else $f = new ReflectionFunction($g);
		return $f;
	}
}
class haberler {
  function cagir ( $id, $sayfa = 0, $eleman = 10, $sira = 'date', $yontem = 'desc') {
    echo "id=$id&sayfa=$sayfa&eleman=$eleman&sira=$sira&yontem=$yontem";
  }
}
$haberler = new haberler();
$dinamikParametreler = new dinamikParametreler();
$dinamikParametreler->cagir(array($haberler, 'cagir'), array('sira' => 'ad'));

Çıktısı

id=&sayfa=0&eleman=10&sira=ad&yontem=desc

Sipariş Algoritmalarında Dinamik Fiyat Kontrolü

Bu sınıf, E-Ticaret ağ geçidine dinamik fiyatla sipariş vermek için gerekli olan MD5 algoritmasını kullanarak fiyat kontrolleri üretmeyi amaçlamaktadır.

<?php 
define ('NET', 'N');
define ('BRUT', 'B');
class dinamikFiyat {
	var $urunNumarasi='';
	var $fiyatlar=array();
	var $fiyatTipi=NET;
	var $sifre='';
	function MD5saglamaToplami(){
		$fiyatlar=implode(',',$this->fiyatlar).','.$this->fiyatTipi;
		$metin=$this->urunNumarasi.'#'.$fiyatlar.'#'.$this->sifre;	
		return md5($metin);
	}
	function fiyatEkle($fiyat) {
		$this->fiyatlar[]=$fiyat; 
	}
}
$dinamikFiyat = new dinamikFiyat ();
$dinamikFiyat->urunNumarasi = '103'; 
$dinamikFiyat->fiyatTipi = NET;
$dinamikFiyat->sifre = '12345678'; 
$dinamikFiyat->fiyatEkle ('12TRY');
echo $dinamikFiyat->MD5saglamaToplami()."<br>";
echo $dinamikFiyat->urunNumarasi."<br>";
echo $dinamikFiyat->fiyatTipi."<br>";
echo $dinamikFiyat->sifre."<br>";
print_r($dinamikFiyat->fiyatlar);
?>

Çıktısı

27adbf13e9556f4eef2fe30ce5c8b1f7
103
N
12345678
Array ( [0] => 12TRY )

 

Hex Kodunu Metine, Metni Hex Koduna Çevirme

<?php
header('Content-Type: text/html; charset=utf-8');
class Hex{
	var $hex;
	var $tmp;
	function cevirHex($metin){
		$metin=htmlspecialchars_decode($metin);
		foreach(unpack('C*',$metin) as $dec){
			$tmp = dechex($dec);
			$this->hex[] .= strtoupper(str_repeat('0',2-strlen($tmp)).$tmp);	
		}
		return join($this->hex);
	}
	function cevirMetin($hexcode){
		foreach(str_split(trim($hexcode),2) as $hex){
			$this->tmp .= pack('C*', hexdec($hex));
		}
		return htmlspecialchars($this->tmp);
	}
}
$obj = new Hex;
$hexcode = "3C3F706870206563686F20226D6572686162612064C3BC6E7961223B3F3E";
echo $metin=$obj->cevirMetin($hexcode)."<br>";
echo $obj->cevirHex($metin);
?>

Çıktısı

<?php echo "merhaba dünya";?>
3C3F706870206563686F20226D6572686162612064C3BC6E7961223B3F3E3C62723E

 

Dünya Dillerindeki Karakterleri Html Entities veya Seo İngilizce Karaktere Dönüştürme

<?php
header('Content-Type: text/html; charset=utf-8');
class html_ters {
  function objeleme($metin) {
    $ts = array_flip(get_html_translation_table(HTML_ENTITIES));
    return strtr($metin, $ts);
  }
  function ayirma($metin) {
			$karakterler = array(
			// Latin
			'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
			'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
			'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
			'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
			'ß' => 'ss',
			'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
			'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
			'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
			'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
			'ÿ' => 'y',
			// Latin symbols
			'©' => '(c)',
			// Greek
			'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
			'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
			'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
			'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
			'Ϋ' => 'Y',
			'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
			'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
			'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
			'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
			'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',
			// Turkish
			'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
			'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
			// Russian
			'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',
			'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',
			'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
			'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',
			'Я' => 'Ya',
			'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
			'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
			'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
			'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',
			'я' => 'ya',
			// Ukrainian
			'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
			'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
			// Czech
			'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
			'Ž' => 'Z',
			'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
			'ž' => 'z',
			// Polish
			'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
			'Ż' => 'Z',
			'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
			'ż' => 'z',
			// Latvian
			'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
			'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
			'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
			'š' => 's', 'ū' => 'u', 'ž' => 'z'
    );
		return str_replace(array_keys($karakterler), $karakterler, $metin);
  }
}
$donustur = new html_ters;
$metin = 'γεια κόσμο';//Yunanca Merhaba Dünya
$metin2 = htmlentities($metin);
echo $metin2;
echo "<br>\n";
echo $donustur->objeleme($metin2);
echo "<br>\n";
echo $donustur->ayirma($metin);
?>

Çıktısı

&gamma;&epsilon;&iota;&alpha; &kappa;ό&sigma;&mu;&omicron;
γεια κόσμο
geia kosmo

 

Etiket Bulutu Sınıfı

<?php
class Bulut{
	function Bulut($dosya = 'bulut.dat'){
		if(!file_exists($dosya)){
			$f = fopen($dosya,"w");
			fyaz($f,serialize(array()));
			fclose($f);
		}
	}
	static function hazirla($giris){
		$giris = preg_replace("/\d+/","",$giris);
		$giris = preg_replace("/\W+/","-",$giris);
		$giris = preg_replace("/(^\W)|(\W$)/","",$giris);
		$giris = preg_replace("/[\-]+/","-",$giris);
		return ($giris);
	}
	static function yaz($bulut,$dosya = 'bulut.dat'){
		$f = fopen($dosya,"w");
		fwrite($f,serialize($bulut));
		fclose($f);
	}
	static function oku($dosya = 'bulut.dat'){
		if(!file_exists($dosya))
		$bulut = new Bulut;
		$dosya = file($dosya);
		$bulut = unserialize($dosya[0]);
		return $bulut;
	}
	static function guncelle($kelime){
		$bulut = Bulut::oku();
		$kelime = Bulut::hazirla($kelime);
		if(array_key_exists($kelime,$bulut))
			$bulut[$kelime]++;
		else
			$bulut[$kelime] = 1;
		Bulut::yaz($bulut);
	}
	static function isle($format,$min = 9,$maks = 28){
		$bulut = Bulut::oku();
		if(sizeOf($bulut) == 0){
			$sonuc = 'Veri Yok';
			$bulut = new Bulut;
		} else	{
			$min_say = min(array_values($bulut));
			$maks_say = max(array_values($bulut));
			$spoku = $maks_say - $min_say;
			$sonuc = '';
			foreach($bulut AS $bulut=>$cnt){
				$boyut = $min + ($cnt - $min_say) * ($maks - $min) / $spoku;
				$etiket = @str_replace('###KELIME###', $bulut, $format);
				$etiket = @str_replace('###BOYUT###', floor($boyut), $etiket);
				$sonuc .= $etiket;
			}
		}
		return $sonuc;
	}
}
Bulut::guncelle("php");
Bulut::guncelle("javascript");
Bulut::guncelle("html");
Bulut::guncelle("css");
echo Bulut::isle('<a href="?###KELIME###" style="font-size:###BOYUT###px">###KELIME###</a> ');
?>

Çıktısı

<a href="?php" style="font-size:28px">php</a> 
<a href="?javascript" style="font-size:14px">javascript</a> 
<a href="?html" style="font-size:9px">html</a> 
<a href="?css" style="font-size:9px">css</a>

 

Şifreleri Şifrelemek ve Çözmek

<?php
class Sifre{
   var $k;
   function Sifre($m){
      $this->k = $m;
   }
   function ed($t) { 
      $r = md5($this->k); 
      $c=0; 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++) { 
         if ($c==strlen($r)) $c=0; 
         $v.= substr($t,$i,1) ^ substr($r,$c,1); 
         $c++; 
      } 
      return $v; 
   } 
   function sifrele($t){ 
      srand((double)microtime()*1000000); 
      $r = md5(rand(0,32000)); 
      $c=0; 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++){ 
         if ($c==strlen($r)) $c=0; 
         $v.= substr($r,$c,1) . 
             (substr($t,$i,1) ^ substr($r,$c,1)); 
         $c++; 
      } 
      return base64_encode($this->ed($v)); 
   } 
   function coz($t) { 
      $t = $this->ed(base64_decode($t)); 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++){ 
         $md5 = substr($t,$i,1); 
         $i++; 
         $v.= (substr($t,$i,1) ^ $md5); 
      } 
      return $v; 
   } 
}
$sifre = "123456";
$cr64 = new Sifre($sifre);
$e = $cr64->sifrele($sifre);
echo "Şifreli = ".$e."<br>";
$d = $cr64->coz($e);
echo "Çözülmüş = ".$d."<br>";
?>

Çıktısı

Şifreli = UzYGZVBkAT8AOFBl
Çözülmüş = 123456