Hata Ayıklama ve Hata Kayıtlarını Tarihleri ile Saklama

<?php
header('Content-Type: text/html; charset=utf-8');
class HataAyiklama {
	function hata2($V,$isim="") {
		$tiprengi="RED";
		$isimrengi="BLUE";
		$degerrengi="BLACK";
		$D="";
		if (is_int($V)) {
			$D="<FONT COLOR=$tiprengi><B>Sayı: </B></FONT>";
			if ($isim!="") $D .= "( <FONT COLOR=$isimrengi>$isim</FONT> ) ";
			$D.=" [ <FONT COLOR=$degerrengi>$V</FONT> ]";
		}
		if (is_string($V)) {
			$D="<FONT COLOR=$tiprengi><B>Metin: </B></FONT>";
			if ($isim!="") $D .= "( <FONT COLOR=$isimrengi>$isim</FONT> ) ";
			$D.=" [ <FONT COLOR=$degerrengi>"$V"</FONT> ]";
		}
		if (is_array($V)) {
			$D = "<FONT COLOR=$tiprengi><B>Dizi: </B></FONT>";
			if ($isim!="") $D .= "( <FONT COLOR=$isimrengi>$isim</FONT> ) ";
			$D .= "<FONT COLOR=$degerrengi><UL>";
			while(list($key, $val) = each($V)) {
				$D.= hata2($val,$key); 
			}
			$D.="</UL></FONT>";
		}
		$D.="<BR>";
		return($D);
	}
	function hata($V,$isim="") {
		$D = $this->hata2($V,$isim);
		$D .= "<META CHARSET=UTF-8><TABLE SIZE=100% CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD><HR SIZE=1></TD>
		<TD WIDTH=1%><FONT FACE='Verdana,arial' SIZE=1>".date("d.m.Y")." ".date("H:i:s")."</FONT></TD></TR></TABLE>";
		$alt = @file("./hata.html");
		$alt[] = "";
		$alt = implode($alt,"");
		$fp = @fopen("./hata.html","w");
		if($fp==""){
			echo '<SCRIPT>alert("hata.html dosyası gerekli");</SCRIPT>';
			exit;
		}else{
			fwrite($fp,$D."\n");
			fwrite($fp,$alt);
			fclose($fp);
		}
		echo '<SCRIPT>w=window.open("hata.html","HataAyiklamaVAR","WIDTH=450,HEIGHT=500,scrollbars=yes,resizable=yes");w.focus();</SCRIPT>';
	}              
}
$degisken1="Bu bir hatadır";
$D = new HataAyiklama();
$D->hata($degisken1,"degisken1");
?>

Çıktısı

Metin: ( degisken1 ) [ "Bu bir hatadır" ]
07.06.2018 01:12:44
Metin: ( degisken1 ) [ "Bu bir hatadır" ]
07.06.2018 01:12:20

 

Tek Nesne Arayüz Sınıfı

index.php

<?php
header('Content-Type: text/html; charset=utf-8');
require("Autoload.php");
class test implements Singleton_Interface{
	public static function getInstance(){
		return new static;
	}
}
class test2{
	public static function getInstance(){
		return new static;
	}
}
$b=new test;
if ($b instanceof Singleton_Interface) {
	echo get_class(test::getInstance());
}

Autoload.php

<?php
if(!function_exists('__autoload')){
	function __autoload($sinifAdi){
		if(class_exists('Zend',false)){
			if(is_int(strrpos($sinifAdi,'_Interface'))){
				Zend::loadClass($sinifAdi);
			}else{
				Zend::loadInterface($sinifAdi);
			}
		}else{
			if(!defined('__CLASS_PATH__')){
				define('__CLASS_PATH__',realpath(dirname(__FILE__)));
			}
			$dosya=__CLASS_PATH__ . '/'.str_replace('_','/',$sinifAdi).'.php';
			if(!file_exists($dosya)){
				throw new Exception('Sınıf Dosyası Yüklenemiyor '.$sinifAdi);
			}else{
				require_once $dosya;
			}
		}
	}
}

Singleton/Interface.php

<?php
if (!interface_exists('Singleton_Interface')) {
  interface Singleton_Interface{
    public static function getInstance();
  }
}

Çıktısı

test

 

Genişletilmiş Dizi Nesne Sınıfı

<?php
class genisletilmisDiziNesnesi extends ArrayObject {
	private $dizi;
	public function __construct(){
		if (is_array(func_get_arg(0)))
		$this->dizi = func_get_arg(0);
		else
		$this->dizi = func_get_args();
		parent::__construct($this->dizi);
	}
	public function each($callback){
		$yineleyici = $this->getIterator();
		while($yineleyici->valid()) {
			$callback($yineleyici->current());
			$yineleyici->next();
		}
	}
	public function haric(){
		$args = func_get_args();
		return array_values(array_diff($this->dizi,$args));
	}
	public function ilk(){
		return $this->dizi[0];
	}
	public function sira($deger){
		return array_search($deger,$this->dizi);
	}
	public function denetle(){
		echo print_r($this->dizi, true);
	}
	public function son(){
		return $this->dizi[count($this->dizi)-1];
	}
	public function terscevir($uygula=false){
		if(!$uygula){
			return array_reverse($this->dizi);
		}else{
			$dizi = array_reverse($this->dizi);
			$this->dizi = $dizi;
			parent::__construct($this->dizi);
			return $this->dizi;
		}
	}
	public function shift(){
		$eleman = array_shift($this->dizi);
		parent::__construct($this->dizi);
		return $eleman;
	}
	public function pop(){
		$eleman = array_pop($this->dizi);
		parent::__construct($this->dizi);
		return $eleman;
	}
}
function yazdir($deger){
  echo $deger;
}
$dizi = new genisletilmisDiziNesnesi([1,2,3,4,5,6]);
$dizi->each("yazdir");
echo "<br>";
print_r($dizi->haric(2,3,4));
$dizi->denetle();
echo $dizi->sira(5);
echo "<br>";
print_r($dizi->terscevir());
print_r($dizi->terscevir(true));
echo $dizi->shift();
echo "<br>";
echo $dizi->pop();
echo "<br>";
echo $dizi->son();
echo "<br>";
echo $dizi->ilk();
?>

Çıktısı

123456
Array
(
    [0] => 1
    [1] => 5
    [2] => 6
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
4
Array
(
    [0] => 6
    [1] => 5
    [2] => 4
    [3] => 3
    [4] => 2
    [5] => 1
)
Array
(
    [0] => 6
    [1] => 5
    [2] => 4
    [3] => 3
    [4] => 2
    [5] => 1
)
6
1
2
5

 

Büyük ve Küçük Harf, Sayı ve Özel Karakter Seçerek Rastgele Şifre Oluşturma

<?php
header('Content-Type: text/html; karakterleret=utf-8');
class sifre {
	var $kucukharf;
	var $buyukharf;
	var $sayi;
	var $ozelkarakter;
	Var $uzunluk;
	Var $onek;
	function sifre($uzunluk=10,$onek='') {
		$this->uzunluk = $uzunluk;
		$this->onek = $onek;
		$this->kucukharf = true;
		$this->buyukharf = true;
		$this->sayi = true;
		$this->ozelkarakter = false;	
	}
	function olustur() {
		if ($this->buyukharf) {
			$karakterler = 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");
		}
		if ($this->kucukharf) {
			$karakterler[] = "a";
			$karakterler[] = "b";
			$karakterler[] = "c";
			$karakterler[] = "d";
			$karakterler[] = "e";
			$karakterler[] = "f";
			$karakterler[] = "g";
			$karakterler[] = "h";
			$karakterler[] = "i";
			$karakterler[] = "j";
			$karakterler[] = "k";
			$karakterler[] = "l";
			$karakterler[] = "m";
			$karakterler[] = "n";
			$karakterler[] = "o";
			$karakterler[] = "p";
			$karakterler[] = "q";
			$karakterler[] = "r";
			$karakterler[] = "s";
			$karakterler[] = "t";
			$karakterler[] = "u";
			$karakterler[] = "v";
			$karakterler[] = "w";
			$karakterler[] = "x";
			$karakterler[] = "y";
			$karakterler[] = "z";
		}
		if ($this->sayi) {
			$karakterler[] = "1";
			$karakterler[] = "2";
			$karakterler[] = "3";
			$karakterler[] = "4";
			$karakterler[] = "5";
			$karakterler[] = "6";
			$karakterler[] = "7";
			$karakterler[] = "8";
			$karakterler[] = "9";
			$karakterler[] = "0";
		}
		if ($this->ozelkarakter) {
			$karakterler[] = '!';
			$karakterler[] = '@';
			$karakterler[] = '#';
			$karakterler[] = "$";
			$karakterler[] = '%';
			$karakterler[] = '^';
			$karakterler[] = '&';
			$karakterler[] = '*';
			$karakterler[] = '(';
			$karakterler[] = ')';
			$karakterler[] = '{';
			$karakterler[] = '}';
			$karakterler[] = '[';
			$karakterler[] = ']';
			$karakterler[] = '<';
			$karakterler[] = '>';
			$karakterler[] = '?';
			$karakterler[] = "=";
			$karakterler[] = '+';
			$karakterler[] = '-';
			$karakterler[] = "_";
			$karakterler[] = "/";
		}

		$max_eleman = count($karakterler) - 1;
		$yenisifre = $this->onek;
		$l = $this->uzunluk - struzunluk($this->onek);
		for ($i = 0;$i<$l;$i++)
		{ 
 			srand((double)microtime()*1000000);
			$yenisifre .= $karakterler[rand(0,$max_eleman)];
		}
		return  $yenisifre;
	}
}
$s = new sifre();
echo $s->olustur() . '<br>';
$s->kucukharf = false;
echo $s->olustur() . '<br>';
$s->ozelkarakter = true;
echo $s->olustur() . '<br>';
?>

Çıktısı

5D123P5RSF
$+_/@#%&VX
ZYCqsVXBDF

 

Arapça Türkçe Harflerin ve Kelimelerin Okunuşu

Not: Okunuş tüm sesli harfleri içermez. Bu yüzden gerçek değil, programsal okunuşu oluşturur.

<?php
header('Content-Type: text/html; charset=utf-8');
class Oku{
	var $turkce=['b','z','t','m','t','r','z','n','s','z','a','h','c','s','ğ','h','g','f','h','s','ş',
		'd','d','k','e','e','i','ü','i','e','e','y','t','y','l','v','en','ün','in','e','ü','i','~','o'];
	var $arapca=['\u0628','\u0630','\u0637','\u0645','\u062a','\u0631','\u0638','\u0646',
		'\u062b','\u0632','\u0639','\u0647','\u062c','\u0633','\u063a','\u062d','\u0642','\u0641','\u062e','\u0635',
		'\u0634','\u062f','\u0636','\u0643','\u0623','\u0621','\u0626','\u0624','\u0625','\u0622','\u0627','\u0649',
		'\u0629','\u064a','\u0644','\u0648','\u064b','\u064c','\u064d','\u064e','\u064f','\u0650','\u0651','\u0652'];
	var $onceki=["lr","nb","nl","nr","nm","ny","ns","nt","nd","nc","nz","nş","nk","ng","nf","bm","gk"];
	var $sonraki=["rr","mb","ll","rr","mm","yy","s","t","d","c","z","ş","k","g","f","mm","kk"];
	function arapcaTurkce($metin){
		$unicode=str_replace('"',"",json_encode($metin));
		$turkce=str_replace($this->arapca,$this->turkce,$unicode);
		return str_replace($this->onceki,$this->sonraki,$turkce);
	}
	function turkceArapca($metin){
		mb_internal_encoding('UTF-8');
		$metin=mb_strtolower($metin);
		$metin=str_replace(["u","o","ö","ı",],["ü","ü","ü","i"],$metin);
		$metin=str_replace($this->sonraki,$this->onceki,$metin);
		$metin=str_replace($this->turkce,$this->arapca,$metin);
		return json_decode('"'.$metin.'"');
	}
}
$cevir=new Oku;
echo $cevir->arapcaTurkce("ؤلؤنثعن ىعنذئلئم");
echo "<br>";
echo $cevir->turkceArapca("Ulusan Yazılım");
echo "<br>";

Çıktısı

ؤلؤنثعن ىعنذئلئم
ülüsan yazilim

 

Uzak FTP Sunucusuna Dosya ve Klasör Yükleme ve Kopyalama

Yerel bilgisayardaki bulunan dosyalarınızı uzak ftp’ye hızlıca aktarabilirsiniz.

ftp.siteadresim.com ftpkullanici ftpsifre bilgileri yerine ftp bağlantı bilgilerinizi giriniz.

$nereden değişkenine kopyalanacak mevcut local dizini,

$nereye değişkenine ftp’de oluşturmak ve dosyaları içine kopyalamak istediğiniz dizini yazınız

<?php
set_time_limit(0);
class FtpYukleme{
	public function klasorleriKopyala($klasorIcerik,$nereye,$nereden,$ftp){
		foreach($klasorIcerik as $anahtar=>$deger){
			if(is_array ($deger)){
				ftp_mkdir($ftp, $nereye.'/'.$anahtar);
				$this->klasorleriKopyala($deger,$nereye.'/'.$anahtar,$nereden.'/'.$anahtar,$ftp);
			}else{
				ftp_put($ftp , $nereye.'/'.$deger,$nereden.'/'.$deger,FTP_ASCII);
			}
		}		
	}
	public function klasoruOku($yol){
		$dh = opendir($yol);
		$klasorIcerik = array();
		while (($dosya = readdir($dh)) !== false) {
			if(!(preg_match('/^\.{1,2}$/',$dosya)||preg_match('/^\.svn[a-z,0-9]*$/',$dosya))){
				if(is_dir($yol.'/'.$dosya)){
					$klasorIcerik[$dosya] = $this->klasoruOku($yol.'/'.$dosya);
				}
				else{
					$klasorIcerik[] = $dosya; 
				}
			}
		}
		return $klasorIcerik;
	}	
}
$ftp = ftp_connect('ftp.siteadresim.com',21);//ftp ip veya adres 
ftp_login($ftp,'ftpkullanici','ftpsifre');
$nereden = $_SERVER['DOCUMENT_ROOT']."";//kopyalanacak mevcut local dizin 
$nereye = '/httpdocs/olmayandizin';//kopyalanacak boş ftp dizininiz
ftp_mkdir($ftp, $nereye);
$ftpYukle = new FtpYukleme();
$klasorIcerik = $ftpYukle->klasoruOku($nereden);
$ftpYukle->klasorleriKopyala($klasorIcerik,$nereye,$nereden,$ftp);
ftp_close($ftp);
?>

 

Sorgu İşlemleri Sınıfı

<?php
class Sorgu{
	var $degiskenler;
	function Sorgu($veri,$urlkodla = false){
		if(!is_array($veri)){
			if($veri != ""){
				$veri = preg_replace("/^\?/","",$veri);
				$islem = explode("&",$veri);
				foreach($islem as $deger){
					$t = explode("=",$deger);
					$t[1] = urldecode($t[1]);
					$this->degiskenler[$t[0]] = $t[1];
				}
			}else{
				$this->degiskenler = array();
			}
		}else{
			if($urlkodla){
				foreach($veri as $anahtar => $deger){
					$veri[$anahtar] = urldecode($deger);
				}
			}
			$this->degiskenler = $veri;
		}
	}
	function degistir($ad,$deger){
		$this->degiskenler[$ad] = $deger;
	}
	function sil($ad){
		unset($this->degiskenler[$ad]);
	}
	function cokluekle($veri,$urlkodla = false){
		if(!is_array($veri)){
			$veri = preg_replace("/^\?/","",$veri);
			if($veri != ""){
				$islem = explode("&",$veri);
				foreach($islem as $deger){
					$t = explode("=",$deger);
					$t[1] = urldecode($t[1]);
					$this->degiskenler[$t[0]] = $t[1];
				}
			}
		}else{
			if($urlkodla){
				foreach($veri as $anahtar => $deger){
					$veri[$anahtar] = urldecode($deger);
				}
			}
			$this->degiskenler = array_merge($this->degiskenler,$veri);
		}
	}
	function getdegiskenler($tip){
		switch($tip){
			case "array":
			return $this->degiskenler;
			break;
			case "query":
			$sonuc = "";
			foreach($this->degiskenler as $anahtar => $deger){
				if($sonuc != ""){
					$sonuc = $sonuc."&";
				}
				$sonuc = $sonuc.$anahtar."=".urlencode($deger);
			}
			return $sonuc;
			break;
			case "hidden":
			$sonuc = "";
			foreach($this->degiskenler as $anahtar => $deger){
				$sonuc = $sonuc."<input tip=\"hidden\" ad=\"{$anahtar}\" deger=\"".htmlentities($deger)."\" />\n";
			}
			return $sonuc;
			break;
		}
	}
}
if($_GET['postugetecevir'] != 'evet'){
	$postveri = new Sorgu($_POST);
	$postveri->degistir('postugetecevir','evet');
	$postveri->cokluekle($_GET);
	$get = $postveri->getdegiskenler('query');
	header("Location: {$_SERVER['SCRIPT_NAME']}?{$get}");
}
print_r($_REQUEST);
?>

Çıktısı

Array ( [postugetecevir] => evet )

 

Bir Kelimenin Büyük ve Küçük Harf Permütasyonlarını Almak

<?php
class buyukkucukPermutasyon{
	var $metin="";
	var $uzunluk=0;
	var $diziler=array();
	var $metinler=array();
	function buyukkucukPermutasyon($metin){
		header('Content-Type: text/html; charset=utf-8');
		mb_internal_encoding('UTF-8');
		$this->metin=$metin;
		$this->uzunluk=mb_strlen($metin);
	}
	function getir_buyukkucukPermutasyon(){
		$len=mb_strlen($this->metin);
		$this->permutasyon($this->metin,"");
		$this->dizi($this->diziler);
	}
	function permutasyon($metin,$deger=""){
		if ($metin!=""){
			$this->diziler[]=array($deger.mb_strtolower($metin{0}),$this->permutasyon(mb_substr($metin,1,mb_strlen($metin)),$deger.mb_strtolower($metin{0})) );
			$this->diziler[]=array($deger.mb_strtoupper($metin{0}),$this->permutasyon(mb_substr($metin,1,mb_strlen($metin)),$deger.mb_strtoupper($metin{0})) );
		}
	}
	function dizi($a=array()){
		while (list($anahtar, $deger) = each ($a)) {
		if(count($deger)<1) continue;
		   if((gettype($deger)=="array") && (count($deger)>0)) $this->dizi($deger);
		   elseif($this->uzunluk==mb_strlen($deger)) $this->metinler[]=$deger;
		}
	}
	function getir_metinler(){
		return $this->metinler;
	}
	function getir_diziler(){
		return $this->diziler;
	}
	function getir_uzunluk(){
		return $this->uzunluk;
	}
}
echo "<pre>";
$a = new buyukkucukPermutasyon("ulusan");
$a->getir_buyukkucukPermutasyon();
print_r($a->getir_metinler());
?>

Çıktısı

Array
(
    [0] => ulusan
    [1] => ulusaN
    [2] => ulusAn
    [3] => ulusAN
    [4] => uluSan
    [5] => uluSaN
    [6] => uluSAn
    [7] => uluSAN
    [8] => ulUsan
    [9] => ulUsaN
    [10] => ulUsAn
    [11] => ulUsAN
    [12] => ulUSan
    [13] => ulUSaN
    [14] => ulUSAn
    [15] => ulUSAN
    [16] => uLusan
    [17] => uLusaN
    [18] => uLusAn
    [19] => uLusAN
    [20] => uLuSan
    [21] => uLuSaN
    [22] => uLuSAn
    [23] => uLuSAN
    [24] => uLUsan
    [25] => uLUsaN
    [26] => uLUsAn
    [27] => uLUsAN
    [28] => uLUSan
    [29] => uLUSaN
    [30] => uLUSAn
    [31] => uLUSAN
    [32] => Ulusan
    [33] => UlusaN
    [34] => UlusAn
    [35] => UlusAN
    [36] => UluSan
    [37] => UluSaN
    [38] => UluSAn
    [39] => UluSAN
    [40] => UlUsan
    [41] => UlUsaN
    [42] => UlUsAn
    [43] => UlUsAN
    [44] => UlUSan
    [45] => UlUSaN
    [46] => UlUSAn
    [47] => UlUSAN
    [48] => ULusan
    [49] => ULusaN
    [50] => ULusAn
    [51] => ULusAN
    [52] => ULuSan
    [53] => ULuSaN
    [54] => ULuSAn
    [55] => ULuSAN
    [56] => ULUsan
    [57] => ULUsaN
    [58] => ULUsAn
    [59] => ULUsAN
    [60] => ULUSan
    [61] => ULUSaN
    [62] => ULUSAn
    [63] => ULUSAN
)

 

Alan Adı Sorgulama

<?php
Class AlanAdi{
	var $content;
	var $bilgi;
	function kontrol($adres){
		if (!empty($adres)){
			$a= parse_url($adres);
			if(isset($a["host"])){
				$sunucu=$a["host"];
			}else{
				$sunucu=$adres;
			}
			$url="https://reports.internic.net/cgi/whois?whois_nic=".$sunucu."&type=domain";
			$ch= curl_init($url);
			curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
			curl_setopt($ch,CURLOPT_HEADER,false);
			curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
			curl_setopt($ch,CURLOPT_USERAGENT,"Googlebot/2.1 (+http://www.google.com/bot.html)");
			curl_setopt($ch,CURLOPT_HTTPHEADER,array('Referer: https://www.internic.net/whois.html'));
			$this->content=curl_exec($ch);
			curl_close($ch);
			if(strstr($this->content,"No match for adres")){
				return false;
			}else{
				return true;
			}
		}else{
			return false;
		}
	}
	function bilgi($adres){
			if($this->kontrol($adres)){
				preg_match("/pre>(.*?)</si",$this->content,$cikti);
				return explode("\n",$cikti[1]);
			}
			
		}
}
$w=new AlanAdi;
print_r($w->bilgi("ulusanyazilim.com"));
?>

Çıktısı

Array
(
    [0] => 
    [1] =>    Domain Name: ULUSANYAZILIM.COM
    [2] =>    Registry Domain ID: 1779058037_DOMAIN_COM-VRSN
    [3] =>    Registrar WHOIS Server: whois.ihs.com.tr
    [4] =>    Registrar URL: http://www.ihs.com.tr
    [5] =>    Updated Date: 2018-02-06T22:31:04Z
    [6] =>    Creation Date: 2013-02-08T01:19:52Z
    [7] =>    Registry Expiry Date: 2020-02-08T01:19:52Z
    [8] =>    Registrar: IHS Telekom, Inc.
    [9] =>    Registrar IANA ID: 1091
    [10] =>    Registrar Abuse Contact Email:
    [11] =>    Registrar Abuse Contact Phone:
    [12] =>    Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
    [13] =>    Name Server: NS1.IHSDNSX34.COM
    [14] =>    Name Server: NS2.IHSDNSX34.COM
    [15] =>    DNSSEC: unsigned
    [16] =>    URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
    [17] => >>> Last update of whois database: 2018-06-05T14:35:47Z 
)

 

Tarih Farkı Sınıfı

1970-01-01 ve sonraki tarihler için hesaplama yapar.

<?php
class TarihFarki {
	var $t1=0;
	var $t2=0;
	function farkTarih ($tarih1, $tarih2=NULL) {
	  $t1 = strtotime($tarih1);
	  if ($tarih2==NULL) { $t2 = $t1; $t1 = time(); }
	  else                $t2 = strtotime($tarih2);
		return ($t2-$t1)/86400;
	}
	function gunEkle ($gun, $format="Y-m-d", $tarih=NULL) {
	  if ($tarih==NULL) { $t1 = time(); }
	  else               $t1 = strtotime($tarih);
	  $t2 = $gun * 86400;
		return date($format,($t2+$t1));
	}
	function gunCikar ($gun, $format="Y-m-d", $tarih=NULL) {
		return $this->gunEkle(-($gun),$format,$tarih);
	}
}
$dt       = new TarihFarki;
$tarih = $dt->gunEkle(10);
echo '10 gün sonra: '.$tarih.'<br>';
$tarih = $dt->gunCikar(10);
echo '10 gün önce: '.$tarih.'<br>';
$fark     = $dt->farkTarih('2023-05-23');
echo '2023-05-23 kadar '.round($fark).' gün<br>';

$tarih = $dt->gunEkle(10,'Y-m-d','2006-02-24');
echo '2006-02-24 ten 10 gün sonra:  '.$tarih.'<br>';
$tarih = $dt->gunCikar(10,'Y-m-d','2006-02-24');
echo '2006-02-24 ten 10 gün önce: '.$tarih.'<br>';
$fark     = $dt->farkTarih('2007-02-23','2007-03-09'); 
echo '2007-02-09 ve 2007-03-23 arası '.$fark.' gün<br>';
$fark     = $dt->farkTarih('2006-03-23','2006-02-09');
echo '2006-03-09 arası 2006-02-23 '.$fark.' gün<br>';
?>

Çıktısı

10 gün sonra: 2018-06-15
10 gün önce: 2018-05-26
2023-05-23 kadar1813 gün
2006-02-24 ten 10 gün sonra: 2006-03-06
2006-02-24 ten 10 gün önce: 2006-02-14
2007-02-09 ve 2007-03-23 arası 14 gün
2006-03-09 arası 2006-02-23 -42 gün