Zaman Makinesi Sınıfı ile Geçmiş ve Geleceğe Gitmek

<?php
date_default_timezone_set('Europe/Istanbul');
class zamanMakinesi{
	var $tarih;
	var $eksilt;
	var $unite;
  function zamanMakinesi(){
		$this->tarih = NULL;
		$this->eksilt = NULL;
		$this->unite = NULL;
  }
	function tarihler($tarih,$eksilt,$unite){
		$yil = date("Y",strtotime($tarih));
		$ay = date("m",strtotime($tarih));
		$gun = date("d",strtotime($tarih));
		$saat = date("H",strtotime($tarih));
		$dakika = date("i",strtotime($tarih));
		$saniye = date("s",strtotime($tarih));
		if($unite=="ay") {
			$yenitarih = mktime ($saat,$dakika,$saniye,$ay-$eksilt,$gun, $yil);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		} elseif( $unite=="gun") {
			$yenitarih = mktime ($saat,$dakika,$saniye,$ay,$gun-$eksilt, $yil);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		} elseif ($unite=="yil") {
			$yenitarih = mktime ($saat,$dakika,$saniye,$ay,$gun, $yil-$eksilt);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		} elseif( $unite=="saat") {
			$yenitarih = mktime ($saat-$eksilt,$dakika,$saniye,$ay,$gun, $yil);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		} elseif ($unite=="dakika") {
			$yenitarih = mktime ($saat,$dakika-$eksilt,$saniye,$ay,$gun, $yil);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		} elseif( $unite=="saniye") {
			$yenitarih = mktime ($saat,$dakika,$saniye-$eksilt,$ay,$gun, $yil);
			$yenitarih = date("d-m-Y H:i:s", $yenitarih);
		}
		else{
			return false;
		}
		return $yenitarih;
	}
}
echo date("d-m-Y H:i:s")."<br>";
$t=new zamanMakinesi;
echo $t->tarihler(date("d-m-Y H:i:s"),1,"yil")."<br>";
echo $t->tarihler(date("d-m-Y H:i:s"),-1,"ay")."<br>";
echo $t->tarihler(date("d-m-Y H:i:s"),1,"gun")."<br>";
echo $t->tarihler(date("d-m-Y H:i:s"),-1,"saat")."<br>";
echo $t->tarihler(date("d-m-Y H:i:s"),1,"dakika")."<br>";
echo $t->tarihler(date("d-m-Y H:i:s"),-1,"saniye")."<br>";
?>

Çıktısı

24-05-2018 03:26:01
24-05-2017 03:26:01
24-06-2018 03:26:01
23-05-2018 03:26:01
24-05-2018 04:26:01
24-05-2018 03:25:01
24-05-2018 03:26:02

 

Belirlenen Bir Renkte Görüntü Oluşturmak

<?php
class piksel {
	var $r;
	var $g;
	var $b;
  function piksel(){
		extract($_REQUEST);
		if(isset($r) and isset($g) and isset($b)){
			$this->r=(int)(abs($r)%255);
			$this->g=(int)(abs($g)%255);
			$this->b=(int)(abs($b)%255);
		}elseif(isset($s)){
			$this->renksec($s);
		}
	}
  function cikti($genislik,$yukseklik){
		$im = imagecreatetruecolor($genislik,$yukseklik);
		$renk = imagecolorallocate($im,$this->r,$this->g,$this->b);
		imagefill($im,0,0,$renk);
		header('Content-type: image/png');
		imagepng($im);
		imagedestroy($im);
  }
	function renksec($renk) {
		switch ($renk) {
			case 'black': $this->r=0;$this->g=0;$this->b=0;break;
			case 'white': $this->r=255;$this->g=255;$this->b=255;break;
			case 'pink': $this->r=255;$this->g=0;$this->b=255;break;
			case 'red': $this->r=255;$this->g=0;$this->b=0;break;
			case 'blue': $this->r=0;$this->g=0;$this->b=255;break;
			default:$this->r=255;$this->g=0;$this->b=255;
		} 
	}  
}
$a=new piksel;
echo $a->cikti(100,100);
?>

index.php?r=50&g=50&b=50 Çıktısı

index.php?s=pink Çıktısı

Uluslararası Dillerde Bildirim ve Hata Mesajları Oluşturmak

<?php
class YerelMesajlar{
	var $VarsayilanDil = "en";
	var $Dil;
    var $Mesajlar = array(
        "tr" => array(
            "ERROR" => "Hata!",
            "COMMON_ERROR" => "Ortak Hata",
            "ERRORS_TITLE" => "Hata Kayıtları",
            "MYSQL_CODE" => "Kod",
            "MYSQL_MESSAGE" => "Mesaj",
            "MYSQL_QUERY" => "Sorgu",
            "TPL_EXPECTED" => "Beklenen",
            "TPL_ERROR" => "Şablon Hatası",
            "TPL_NOT_FOUND" => "Şablon Bulunamadı",
            "MAIL_TO" => "Kime",
            "MAIL_COPY" => "Kopya",
            "MAIL_SUBJ" => "Konu",
            "MAIL_KB" => "Кb",
            "MAIL_ATTACH" => "Eklenti"
        ),
        "en" => array(
            "ERROR" => "Error!",
            "COMMON_ERROR" => "Common error",
            "ERRORS_TITLE" => "ERRORS LOG",
            "MYSQL_CODE" => "Code",
            "MYSQL_MESSAGE" => "Message",
            "MYSQL_QUERY" => "Query",
            "TPL_EXPECTED" => "Expected",
            "TPL_ERROR" => "Template error",
            "TPL_NOT_FOUND" => "Template not found",
            "MAIL_TO" => "To",
            "MAIL_COPY" => "Copy",
            "MAIL_SUBJ" => "Subject",
            "MAIL_KB" => "kb",
            "MAIL_ATTACH" => "Attach"

        )
    );
    function YerelMesajlar($Dil){
    	if($Dil){
	    	$this->Dil = $Dil;
	    }
	    else{
	    	$this->Dil = $this->VarsayilanDil;
	    }
    }
    function Mesaj($Id){
    	return $this->Mesajlar[$this->Dil][$Id];
    }
}
$ym = new YerelMesajlar("tr");
echo $ym->Mesaj("MAIL_ATTACH");
?>

Çıktısı

Eklenti

 

Sosyal Medya Sitelerinin Çevrimiçi Durumunu Kontrol Etmek

Sonuç yüklenmesi site sayısına oranla geç alacaktır. Bizim testimizde 104 saniye sürmüştür.

<?php
set_time_limit(0);
class kontrol {
	var $baslamaZamani;
	var $durmaZamani;
	var $tip;
	var $siteler=[
		["google"=>"https://www.google.com/"],
		["youtube"=>"https://www.youtube.com/"],
		["facebook"=>"https://www.facebook.com/"],
		["wikipedia"=>"https://www.wikipedia.org/"],
		["reddit"=>"https://www.reddit.com/"],
		["yahoo"=>"https://www.yahoo.com/"],
		["amazon"=>"https://www.amazon.com/"],
		["twitter"=>"https://twitter.com/"],
		["instagram"=>"https://www.instagram.com/"],
		["vk"=>"https://vk.com/"],
		["live"=>"https://outlook.live.com/owa/"],
		["netflix"=>"https://www.netflix.com/"],
		["microsoft"=>"https://www.microsoft.com/"],
		["bing"=>"https://www.bing.com/"],
		["ebay"=>"https://www.ebay.com/"],
		["office"=>"https://www.office.com/"],
		["mailru"=>"https://mail.ru/"],
		["msn"=>"https://www.msn.com/"],
		["pinterest"=>"https://www.pinterest.com/"],
		["googleplus"=>"https://plus.google.com/"],
		["livejournal"=>"https://www.livejournal.com/"],
		["flickr"=>"https://www.flickr.com/"],
		["badoo"=>"https://badoo.com/"],
		["myspace"=>"https://myspace.com/"],
		["path"=>"https://www.path.com/"],
		["fotolog"=>"https://fotolog.com/"],
		["meetup"=>"https://www.meetup.com/"],
		["last.fm"=>"https://www.last.fm/"],
		["alkislarlayasiyorum"=>"http://alkislarlayasiyorum.com/"],
		["xing"=>"https://www.xing.com/"],
		["stumbleupon"=>"http://www.stumbleupon.com/"],
		["foursquare"=>"https://foursquare.com"],
		["wordpress"=>"https://wordpress.com/"],
		["tumblr"=>"https://www.tumblr.com/"],
		["hi5"=>"https://www.hi5.com/"],
		["wechat"=>"http://www.wechat.com/"],
		["blogger"=>"https://www.blogger.com/"],
		["twitch"=>"https://www.twitch.tv/"],
		["vimeo"=>"https://vimeo.com/"],
		["ok"=>"https://ok.ru/"],
		["quup"=>"http://quup.com/"],
		["slideshare"=>"https://www.slideshare.net/"],
		["photobucket"=>"http://photobucket.com/"],
		["inploid"=>"https://www.inploid.com/"],
		["yonja"=>"https://www.yonja.com/"],
		["groovesharks"=>"http://groovesharks.org/"],
		["dailymotion"=>"https://www.dailymotion.com/"],
		["fizy"=>"http://fizy.com/"],
		["twoo"=>"https://www.twoo.com/"],
		["tagged"=>"http://www.tagged.com/"],
		["whatsapp"=>"https://www.whatsapp.com/"],
		["delicious"=>"https://del.icio.us/"]
	];
	function basla(){
		$this->baslamaZamani=explode(" ", microtime());
	}
	function durdur()
	{
		$this->durmaZamani=explode(" ", microtime());
	}
	function sonuc(){
		$saniye=$this->durmaZamani[1]-$this->baslamaZamani[1];
		$mikro=$this->durmaZamani[0]-$this->baslamaZamani[0];
		$sonuc=(($saniye+$mikro)*1000000);
		if($sonuc < 1000){
			$this->tip="mikrosaniye";
			return number_format($sonuc,0);
		}elseif($sonuc < 1000000){
			$this->tip="milisaniye";
			return number_format($sonuc*0.001,3);
		}elseif($sonuc < 1000000000){
			$this->tip="saniye";
			return number_format($sonuc*0.000001,6);
		}
	}
	function durum() {
		$this->basla();
		echo "<table>";
		foreach($this->siteler as $s){
			foreach($s as $name=>$link){
				if($headers = @get_headers($link)){
					if(substr($headers[0], 9, 3) == (200 or 302)){
						echo '<tr><td>'.$name.'</td><td style="color:green">Açık</td></tr>';
					}else{
						echo '<tr><td>'.$name.'</td><td style="color:orange">'.substr($headers[0], 9, 3).'</td></tr>';
					}
				}else{
					echo '<tr><td>'.$name.'</td><td style="color:red">Kapalı</td></tr>';
				}
			}
		}
		$this->durdur();
		echo '<tr><td colspan="2">'.$this->sonuc().' '.$this->tip.'</td></tr>';;
		echo "</table>";
  }
}
$a=new kontrol;
$a->durum();
?>

Çıktısı

google	Açık
youtube	Açık
facebook	Açık
wikipedia	Kapalı
reddit	Açık
yahoo	Açık
amazon	Açık
twitter	Açık
instagram	Açık
vk	Açık
live	Açık
netflix	Açık
microsoft	Açık
bing	Açık
ebay	Açık
office	Açık
mailru	Açık
msn	Açık
pinterest	Açık
googleplus	Açık
livejournal	Açık
flickr	Açık
badoo	Açık
myspace	Açık
path	Açık
fotolog	Açık
meetup	Açık
last.fm	Açık
alkislarlayasiyorum	Açık
xing	Açık
stumbleupon	Açık
foursquare	Açık
wordpress	Açık
tumblr	Açık
hi5	Açık
wechat	Açık
blogger	Açık
twitch	Açık
vimeo	Açık
ok	Açık
quup	Açık
slideshare	Açık
photobucket	Açık
inploid	Açık
yonja	Açık
groovesharks	Açık
dailymotion	Açık
fizy	Açık
twoo	Açık
tagged	Kapalı
whatsapp	Açık
delicious	Açık
103.921609 saniye

 

Saat Farkı Eklemek veya Çıkarmak

<?php
date_default_timezone_set('Europe/Istanbul');
class saatFark {
	function saatAl($saatfark) {
		$zamanayari = ($saatfark * 60 * 60);
		return date("d.m.Y H:i:s",time() + $zamanayari);
	}
}
$s = new saatFark();
echo $s->saatAl(0);//bugün
echo "<br>";
echo $s->saatAl(-24);//dün
?>

Çıktısı

23.05.2018 22:11:09
22.05.2018 22:11:09

 

Türkçe Tarih Formatlamak

<?php
header('Content-Type: text/html; charset=utf-8');
class tr {
	static function tarih($format='',$tarih=''){
		$aylar = Array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
		$gunler = Array('Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi');
		if($tarih== ''){$tarih=time();}
    $ftarih = str_replace('D','#1', $format);
    $ftarih = str_replace('l','#2', $ftarih);
    $ftarih = str_replace('M','#3', $ftarih);
    $ftarih = str_replace('f','#4', $ftarih);
    $gun = $gunler[date('w', $tarih)];
    $ay = $aylar[date('m', $tarih)-1];
    $cikti = str_replace('#1',$gun, date($ftarih, $tarih));
    $cikti = str_replace('#2',$gun, $cikti);
    $cikti = str_replace('#3',$ay, $cikti);
    $cikti = str_replace('#4',$ay, $cikti);
    return($cikti);
  }
}
echo tr::tarih('d M Y, D H:i:s');
?>

Çıktısı

23 Mayıs 2018, Çarşamba 20:38:10

 

Web Sayfası Ping Tepki Süresi Belirlemek

<?php
Class ping{
	static function site($ip,$text){
		$cmd = shell_exec("ping $ip");
		$ping_results = explode(",",$cmd);
			for($i=0;$i<count($ping_results)+1;$i++){
				if(preg_match("/time=(.*)/si", @$ping_results[$i], $pingtime))
				{
				$pingtime = explode("ms",$pingtime[$i]);
				$pingtime = explode("time=",$pingtime[0]);
				$text     = str_replace("{site}",$ip,$text);
				$text     = str_replace("{time}",$pingtime[1],$text);
				print("$text");
				}else{
					echo implode("<br>",$ping_results);
				}
				die();
			}
	}
}
ping::site("www.google.com", "Ping yaniti {site}: {time}"); 										   
?>

Çıktısı

Ping yaniti www.google.com: 104 Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms Pinging www.google.com [172.217.169.100] with 32 bytes of data: Reply from 172.217.169.100: bytes=32 time=104ms TTL=245 Reply from 172.217.169.100: bytes=32 time=117ms TTL=245 Reply from 172.217.169.100: bytes=32 time=123ms TTL=245 Reply from 172.217.169.100: bytes=32 time=82ms TTL=245 Ping statistics for 172.217.169.100: Packets: Sent = 4
Received = 4
Lost = 0 (0% loss)
Approximate round trip times in milli-seconds: Minimum = 82ms
Maximum = 123ms
Average = 106ms

 

Borsa Hisselerini ve Fiyatlarını Almak

<?php
class hisseSenedi{
	var $bilgi;  
	var $fiyat;	
	var $gecici;	
	function hisseSenedi(){
		$bilgi=file_get_contents("http://finans.mynet.com/borsa/hisseleronline/");
		$bilgi=json_decode($bilgi,true);
		foreach($bilgi["pages"] as $s){
			$this->bilgi[]=['adres'=>$s["path"],'baslik'=>$s["title"],'izleyen'=>$s["stats"]["people"]];
		}
	}
	function topla($adres){
		$this->fiyat=null;
		preg_match('/<ul class="dtListLeft clr">(.*?)<\/div>/si',file_get_contents("http://".$adres),$sonuc);
		preg_match_all('/<li class="clr"><span class="dtColOne">(.*?)<\/span><span class="dtColTwo">(.*?)<\/span><\/li>/si',$sonuc[0],$es);
		for($x=0;$x<count($es[0]);$x++){
			$this->fiyat[]=['isim'=>$es[1][$x],'deger'=>$es[2][$x]];
		}
	}
}
$hs= new hisseSenedi;
/* print_r($hs->bilgi) ile tum en cok izlenen firmalari gorebilirsiniz*/
print_r($hs->bilgi[0]);//en cok izlenen ilk veriyi aliyoruz
$hs->topla($hs->bilgi[0]['adres']);//en cok izlenen ilk veriyi ziyaret ediyoruz
print_r($hs->fiyat);//ziyaret sonucu toplanan verileri yazdiriyoruz.
?>

Çıktısı (Teliften dolayı içerik paylaşılmamıştır. Sadece yazılım eğitimi amaçlı yayındır.)

Array
(
    [adres] => finans.mynet.com/borsa/hisseler/xxxxxx/
    [baslik] => xxxxxx 
    [izleyen] => xx
)
Array
(
    [0] => Array
        (
            [isim] => xxxxxxx Fiyatı
            [deger] => 0,74
        )

)

Dizin Kopyalama, Yedekleme, Eşitleme

İki farklı klasörü karşılaştırarak birinci klasörde olmayan dosyaları ikinci klasörden alıp birinci klasöre kopyalar.Sonuç olarak birinci ve ikinci klasörler eşitlenmiş olur.

index.php

<?php
class yedekleDizin {
	public $yedekDizin ;
	public $asilDizin ;
	public $dizin ;
	public $dosya ;
	public $eksikSayac = 0 ;
	public $sayac = 0 ;
	function yedekleDizin($yedekDizin , $asilDizin){
		$this->yedekDizin = $yedekDizin ;
		$this->asilDizin = $asilDizin ;
		$this->dizin = opendir($this->asilDizin);	
	}
	function yedekle(){
		while($this->dosya = readdir($this->dizin)){
			if(is_file($this->asilDizin.$this->dosya)){	
				if (!file_exists($this->yedekDizin.$this->dosya)){
					echo $this->dosya.' Mevcut Değil';
					echo "<br>";
					$f3 = fopen("yedekleme.txt",'a+') ;
					fwrite($f3,$this->dosya."<br>");
					$this->eksikSayac++;
					fclose($f3);
					if (copy($this->asilDizin.$this->dosya , $this->yedekDizin.$this->dosya)){
						echo "Kopyalandı <br>";
					}else{
						echo "Kopyalanamadı <br>";
					}
				}else{
					echo $this->dosya.' Mevcut';
					echo "<br>";
				}
				$this->sayac++ ;
			}
		}
		closedir($this->dizin);
		echo $this->sayac .'  Toplam Dosya <br>'  ;
		echo $this->eksikSayac .'  Yedeklenmemiş Dosya <br>'  ;
	}
}
$bosKlasor = "bos/";
$doluKlasor = "dolu/";
$y=new yedekleDizin($bosKlasor , $doluKlasor);
$y->yedekle();
?>

bos ve dolu isminde 2 klasör açtık.dolu klasörün içine a.txt b.txt c.txt isimli 3 dosya oluşturduk.

1.Çıktı

index.php

a.txt Mevcut Değil
Kopyalandı 
b.txt Mevcut Değil
Kopyalandı 
c.txt Mevcut Değil
Kopyalandı 
3 Toplam Dosya 
3 Yedeklenmemiş Dosya

yedekleme.txt

a.txt<br>b.txt<br>c.txt<br>

2.Çıktı

index.php

a.txt Mevcut
b.txt Mevcut
c.txt Mevcut
3 Toplam Dosya 
0 Yedeklenmemiş Dosya

Sonuc olarak bos klasorunde ve dolu klasorunde aynı isimli 3 er kopya dosya elde etmiş olduk.

Özel Adres Sınıfı

<?php
error_reporting(63);
class ozelAdres {
	var $anahtarlar= array();
	var $taban = '';
	function ozelAdres($taban='') {
		$this->taban = $taban;
	}
	function anahtarAyarla($isim='',$deger='') {
		if ($isim) {
			$this->anahtarlar[$isim] = $deger;
		}
	}
	function anahtarBirak($isim='') {
		if ($isim) {
			unset($this->anahtarlar[$isim]);
		}
	}
	function tabanAyarla($deger) {
		$this->taban = $deger;
	}
	function anahtarAl($isim) {
		return $this->anahtarlar[$isim];
	}
	function dize() {
		$r = $this->taban;
		if (count($this->anahtarlar)>0) $r .= '?';
		$tarr = array();
		foreach ($this->anahtarlar as $anahtar=>$deger) {
			$u[] = $anahtar.'='.(urlencode($deger));
		}
		$r .= implode('&',$u);
		return $r;
	}
	function kodla($isim='') {
		return "<a href=\"".$this->dize()."\">$isim</a>";
	}
}
$url = new ozelAdres($_SERVER['PHP_SELF']);
$url->anahtarAyarla('par1','Test');
$url->anahtarAyarla('par2',2);
echo $url->dize()."<br>";
echo $url->kodla('test')."<br>";
$url->anahtarBirak('par1');
echo $url->dize()."<br>";
echo "'par2' degeri ".$url->anahtarAl('par2')."<br>";
?>

Çıktısı

/index.php?par1=Test&par2=2
<a href="/index.php?par1=Test&par2=2">test</a>
/index.php?par2=2
'par2' degeri 2