Değişik Stillerde Türkçe Tarih Gösterimi

<?php
class tarih_tr{
	function gun_tr($gun){
		switch($gun){
			case 0 : $gun = "Pazar";
				break;
			case 1 : $gun = "Pazartesi";
				break;
			case 2 : $gun = "Salı";
				break;
			case 3 : $gun = "Çarşamba";
				break;
			case 4 : $gun = "Perşembe";
				break;
			case 5 : $gun = "Cuma";
				break;
			case 6 : $gun = "Cumartesi";
				break;
		}
		return $gun;
	}
	function ay_tr($ay){
			switch($ay){
				case 1 : $ay = "Ocak";
					break;
				case 2 : $ay = "Şubat";
					break;
				case 3 : $ay = "Mart";
					break;
				case 4 : $ay = "Nisan";
					break;
				case 5 : $ay = "Mayıs";
					break;
				case 6 : $ay = "Haziran";
					break;
				case 7 : $ay = "Temmuz";
					break;
				case 8 : $ay = "Ağustos";
					break;
				case 9 : $ay = "Eylül";
					break;
				case 10 : $ay = "Ekim";
					break;
				case 11 : $ay = "Kasım";
					break;
				case 12 : $ay = "Aralık";
					break;
			}
		return $ay;
	}
	function hazirla($stil){
		if(empty($stil) or $stil>4 or $stil<1){
			$stil = 4;
		}
		if($stil==1){
			$veri = date("d")."/".date("m")."/".date("y");
		}elseif($stil==2){
			$veri = date("d")."/".date("m")."/".date("Y");
		}elseif($stil==3){
			$veri = date("d")."/".date("m")."/".date("Y")." ".$this->gun_tr(date("w"));
		}elseif($stil==4){
			$veri = date("d")." ".$this->ay_tr(date("n"))." ".date("Y")." ".$this->gun_tr(date("w"));
		}
	return $veri;
	}
}
$dt = new tarih_tr;
echo $dt->hazirla(1);
echo "<br>";
echo $dt->hazirla(2);
echo "<br>";
echo $dt->hazirla(3);
echo "<br>";
echo $dt->hazirla(4);
?>

Çıktısı

30/05/18
30/05/2018
30/05/2018 Çarşamba
30 Mayıs 2018 Çarşamba

 

Web Site Adresine Erişim Kontrol Sınıfı

<?php
class adresTest{
	var $vektor = array();
	function __construct($time){
		set_time_limit($time);
	}
	function ekle($adres){
		$this->vektor[] = $adres;
	}
	function listele(){
		$list = $this->vektor;
		for($i = 0; $i < count($list);$i++){
			$this->test($list[$i]);
		}
	}
	function test($adres) {
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $adres);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		if(parse_url($adres, PHP_URL_SCHEME) == "https"){
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		}
		$cikti = curl_exec($ch);
		$bilgi = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		$hatalar = array("0","400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "500", "501", "502", "503", "504", "505");
		if(in_array($bilgi, $hatalar)) {
			echo "<a href=\"".$adres."\" target=\"_blank\">".$adres."</a> <b>($bilgi) Sayfaya Erişilemiyor!</b><br />";
		}else{
			echo "<a href=\"".$adres."\" target=\"_blank\">".$adres."</a> <b>($bilgi) Geçerli Sayfa.</b><br />";
		}
		curl_close($ch);
	}
}
$test = new adresTest(0);
$test->ekle('http://www.google.com.tr');
$test->ekle('https://www.ulusanyazilim.com/feed');
$test->listele();
?>

Çıktısı

http://www.google.com.tr (200) Geçerli Sayfa.
https://www.ulusanyazilim.com/feed (301) Geçerli Sayfa.

 

Klasör Oluşturarak Dosya Yazma Sınıfı

<?php
class dosyaYazici{
	var $yenimaske= 0;
	var $klasorizin= 0777;
	var $dosyaizin= 0777;
	var $kullanici= "nobody";
	public $hata=null;
	function yeniKlasor($yol,$klasorname){
		if(!file_exists(getcwd().$yol.$klasorname)){
			$oldumask = @umask($this->yenimaske); 
			$b 		  = @mkdir(getcwd().$yol.$klasorname, $this->klasorizin);
						@umask($oldumask);
			if($b==TRUE){
				return TRUE;
			} else {
				$this->hata.="Klasör Oluşturulamadı";
				return FALSE;
			}
		} else return TRUE;
	}
	function yaz($dosya,$icerik){
		if(!empty($dosya) && !empty($icerik)){
			$fp = fopen($dosya,"w");
			$b = fwrite($fp,$icerik);
			fclose($fp);
			@chmod($dosya,$this->dosyaizin);
			@chown($dosya,$this->kullanici);
			if($b != -1){
				return TRUE;
			} else {
				$this->hata.="Dosya Yazılamadı";
				return FALSE;
			}
		} else {
			$this->hata.="Dosya veya İçerik Bulunamadı";
			return FALSE;
		}
	}
	function oku($dosya){
		if(!empty($dosya)){
			$dt = fopen($dosya, "rb");
			$icerik = fread($dt, filesize($dosya));
			fclose($dt);
			echo $icerik;
		} else {
			$this->hata.="Dosya Bulunamadı";
			return FALSE;
		}
	}
}
$fw = new dosyaYazici;
$fw->yeniKlasor("/","klasor");
$fw->yaz(getcwd()."/klasor/file.txt","bubirdenemedir");
$fw->oku(getcwd()."/klasor/file.txt");
echo $fw->hata;
?>

Çıktısı

bubirdenemedir

 

Post, Get, Request ve Cookie Değerleri Temizleme Sınıfı

<?php
class temizle {
	function temizle() {
		$this->temizleCookie();
		$this->temizleGet();
		$this->temizleRequest();
		$this->temizlePost();
	}
	function temizlePost() {
		foreach($_POST as $anahtar=>$deger) {
			$_POST[$anahtar] = addslashes($deger);
		}
	}
	function temizleGet() {
		foreach($_GET as $anahtar=>$deger) {
			$_GET[$anahtar] = addslashes($deger);
		}
	}
	function temizleRequest() {
		foreach($_REQUEST as $anahtar=>$deger) {
			$_REQUEST[$anahtar] = addslashes($deger);
		}
	}
	function temizleCookie() {
		foreach($_COOKIE as $anahtar=>$deger) {
			$_COOKIE[$anahtar] = addslashes($deger);
		}
	}
}
$_POST = array('isim'=>"Ahmet'in", 'deger'=>"Kalem'i");
$_GET = array('id'=>"nerde'");
$_REQUEST = array('deger'=>'test"');
$_COOKIE = array('sifre'=>"'osman'in_sifresi");
echo '<fieldset><legend>Eski Hali</legend>';
echo 'POST: ';
print_r($_POST);
echo '<br>GET: ';
print_r($_GET);
echo '<br>REQUEST: ';
print_r($_REQUEST);
echo '<br>COOKIE: ';
print_r($_COOKIE);
echo '</fieldset>';
$temizle =new temizle();
echo '<fieldset><legend>Yeni Hali</legend>';
echo 'POST: ';
print_r($_POST);
echo '<br>GET: ';
print_r($_GET);
echo '<br>REQUEST: ';
print_r($_REQUEST);
echo '<br>COOKIE: ';
print_r($_COOKIE);
echo '</fieldset>';
?>

Çıktısı

---Eski Hali---
POST: Array ( [isim] => Ahmet'in [deger] => Kalem'i ) 
GET: Array ( [id] => nerde' ) 
REQUEST: Array ( [deger] => test" ) 
COOKIE: Array ( [sifre] => 'osman'in_sifresi )
---Yeni Hali---
POST: Array ( [isim] => Ahmet\'in [deger] => Kalem\'i ) 
GET: Array ( [id] => nerde\' ) 
REQUEST: Array ( [deger] => test\" ) 
COOKIE: Array ( [sifre] => \'osman\'in_sifresi )

 

Is_callable Kullanımı

Bir değişkenin içeriğinin bir işlev olarak çağrılabilirliğini sınar

Yöntem 1

<?php
function test(){}
$fonksiyon = 'test';
var_dump(is_callable($fonksiyon, false, $isim));
echo $isim;
?>

Çıktısı

bool(true) test

Yöntem 2

<?php
class nesne {
  function test(){}
}
$nesne = new nesne();
$fonksiyon = array($nesne, 'test');
var_dump(is_callable($fonksiyon, true, $isim));
echo $isim;  
?>

Çıktısı

bool(true) nesne::test

 

Warning: get_class() called without object from outside a class in Hatası Çözüm

Hata Örneği

<?php
class sinif{
	public static function OrnekAl(){
		return null;
	}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>

get_class ile bir sınıf ismi döndürmek istedik. Fakat dönen test::OrnekAl() sonucu bir fonksiyon içindeki null‘dü. Düzeltmek için aşağıdaki yöntemler kullanılabilir.

1.Ana ismi almak için fonksiyon sonucunu static sınıfa çevirmek

<?php
class sinif{
	public static function OrnekAl(){
		return new static;
	}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>

2.Ana ismi almak için fonksiyon ismini kaldırmak

<?php
class sinif{
	public static function OrnekAl(){
		return null;
	}
}
class test extends sinif{}
echo get_class(new test);
?>

3.Alt ismi almak için sınıfı döndürmek

<?php
class sinif{
	public static function OrnekAl(){
		return new sinif;
	}
}
class test extends sinif{}
echo get_class(test::OrnekAl());
?>

4.Alt ismi almak için direk sınıfı çağırmak

<?php
class sinif{
	public static function OrnekAl(){
		return null;
	}
}
class test extends sinif{}
echo get_class(new sinif);
?>

 

Preg_replace Kullanımı ile Sözcük veya Kelime Yer Değiştirme

<?php 
$metin="Ben sana mecburum bilemezsin <br>
Adını mıh gibi aklımda tutuyorum <br>
Büyüdükçe büyüyor gözlerin <br>
Ben sana mecburum bilemezsin <br>
İçimi seninle ısıtıyorum. ";
$metin=preg_replace("/yor\w+/i","yorsun",$metin);//yor... geçen gelimeler 
$metin=preg_replace("/bil\w+/i","sevdiğim",$metin);//bil.... geçen kelimeler 
echo $metin;

\w+ : Boşluk hariç numara ve harfler [a-zA-Z0-9_] içeren düzenli ifade kuralı

Çıktısı

Ben sana mecburum sevdiğim 
Adını mıh gibi aklımda tutuyorsun 
Büyüdükçe büyüyor gözlerin 
Ben sana mecburum sevdiğim 
İçimi seninle ısıtıyorsun.

Şiir : Atilla İlhan

Singleton Tek Nesne Genişleme Sınıfı

Bu sınıf, sınıfın sadece bir nesnesinin aynı anda var olmasını sağlar. Bir tekil sınıfının bir nesnesini oluşturmaya yönelik birden fazla girişim, her zaman aynı sınıf örneğini döndürür.

class tekNesne{
	public static function OrnekAl(){
		return new static;
	}
}
class os extends tekNesne{}
class man extends tekNesne{}
echo get_class(os::OrnekAl());
echo "<br>";
echo get_class(man::OrnekAl());

Çıktısı

os
man