Deprecated Non-static method should not be called statically (Php 5’ten 7’ye)

Php sürüm 5 te sınıf içerisinde kullandığınız statik fonksiyonları php sürrüm 7 ve 8 de çalıştırmak istediğiniz de böyle bir hata ile karşılaşabilirsiniz.

PHP 5 için çalışan şekli aşağıdaki gibidir.

Sınıfım::fonksiyonum();

PHP7+ için bu şekilde düzeltebilirsiniz.

(new Sınıfım)->fonksiyonum();

Böylelikle hatanızdan kurtulup çalışan bir statik fonksiyonunuz olacaktır.

Php Imap E-Mail Dosya Eklerini İndirme

Aşağıdaki kod ile gelen kutunuzda bulunan tüm e-maillerdeki dosya eklerini toplu olarak indirebilirsiniz. Dilerseniz for döngüsü yerine $x’e sabit bir değer vererek tek bir dosya ekini de indirebilirsiniz.

<?php
header('Content-Type: text/html; charset=utf-8');
$stream = imap_open('{mail.site.com:143/novalidate-cert}INBOX','admin@site.com', '123456');
$numMessages = imap_num_msg($stream);
for($x=$numMessages;$x>0;$x--){
	$structure=imap_fetchstructure($stream,$x);
	if(isset($structure->parts)) {
		foreach ($structure->parts as $index => $part){
			if (!$part->ifdisposition) continue;
			$body=imap_fetchbody($stream,$x, $index + 1);
			if($part->encoding==3) $body=base64_decode($body);
			if($part->encoding==4) $body=imap_qprint($body);
			$savePath = 'attachments/'.imap_utf8($part->dparameters[0]->value);
			file_put_contents($savePath, $body);
		}
	}
}


Php ile Whatsapp grupta kim kaç mesaj atmış uygulaması

<?php 
header('Content-Type: text/html; charset=utf-8');
$fh = fopen('wp.txt','r');//whatsapp grup mesaj yedeği dosya adı
$data=array();
echo "<pre>";
while ($line = fgets($fh)) {
	preg_match('@(\d{2}).(\d{2}).(\d{4}) (\d{2}):(\d{2}) - (.*?): (.*?)@si',$line,$l);
	if(isset($l[6])){
		$data[]=$l[6];
	}
}
$a = array_count_values($data);
arsort($a);
print_r($a);
fclose($fh);
?>

Whatsapp gruplarında dışa aktardığınız yazışmayı wp.txt olarak localhost ana dizinine kaydetmeniz gerekir.

//Çıktısı:
Array
(
    [Mehmet] => 3192
    [Ahmet] => 2060
    [Ali] => 1906
    [Ayşe] => 1771
    [Fatma] => 1350
    [Veli] => 1191
)

Php ile Lynch-Bell Sayılarını Bulmak (Algoritmik Çözüm)

<?php
error_reporting(0);//sıfıra bölme hatası bastırma
	//Php ile Lynch-Bell Sayılarını Bulmak
	//açıklayıcı algoritmalı çözüm
	for($x=10000;$x<100000;$x++){//5 basamaklı sayıları örnek alacak olursak
		$s1=$x%10;//birler basamağını (mod10)
		$s2=floor(($x%100)/10);//onlar basamağı aşağıyuvarla(mod yüz/10)
		$s3=floor(($x%1000)/100);//yüzler basamağı aşağıyuvarla(mod bin/10)
		$s4=floor(($x%10000)/1000);//binler basamağı aşağıyuvarla(mod bin/10)
		$s5=floor($x/10000);//on binler basamağı aşağıyuvarla(x/1000)
			
		if($x%$s1 == 0){//birler basamağı mod
			if($x%$s2 == 0){//onlar basamağı mod
				if($x%$s3 == 0){//yüzler basamağı mod
					if($x%$s4 == 0){//binler basamağı mod
						if($x%$s5 == 0){//on binler basamağı mod
						  echo $x."<br>";
						}
					}
				}
			}
		}		
	}
?>

Mysql 1364 Field doesn’t have a default value hatası çözümü

Phpmyadmin güncellemesi ile birlikte bu hatayı alanlar uyarıda geçen tabloya tıkladıktan sonra Yapı menüsünden ilgili sütunu seçerek Yapı linkine tıklayın.

Varsayılan değeri yok olan AutoIncrement(id) hariç olan sütunları değiştir seçeneğine tıklayın

Varsayılan değer olarak NULL veya tanımlı bir değer girerek kaydedin.

Php Base Url Fonksiyonu

Php config sayfanıza aşağıdaki kodu ekleyip html sayfanızdaki url ve linklerin başına bu fonksiyonu ekleyebilirsiniz.

function baseurl(){
	return str_replace(
		$_SERVER["DOCUMENT_ROOT"],"",str_replace(
			str_replace(
				$_SERVER["REQUEST_URI"],"",str_replace(
					"\\","/",$_SERVER["SCRIPT_FILENAME"]
				)
			),"",str_replace(
				"\\","/",dirname(__FILE__)
			)
		)
	)."/";
}
//Örnek Kullanımı
echo baseurl()."css/style.css";

Ana dizinde config.php dosyasi bulunduğu varsayılarak bu kodlar config.php içine eklendiğinde config.php dosyasının require ve include ile dahil edildiği tüm dosya ve dizinlerde config.php nin bulunduğu dizini base olarak almaktadır.

Resim Yükleme ve Boyutlandırma Sınıfı

<?php
header('Content-Type: text/html; charset=utf-8');
class resimYukleyici{
	public $isim;
	public $tip;
	public $boyut;
	public $gecici;
	public $hata;
	public $resim;
	public $kucukresim;
	public $mesaj;
	public $yeniresim;
	public $yenikucukresim;
	public function __construct(){
		global $_FILES;
		$this->hata = $_FILES['image']['error'];
		if($this->hata != 0){
			$this->mesaj = $this->hata;
			$this->mesaj;
			return false;
		}else{
			$this->isim = $_FILES['image']['name'];
			$this->tip = $_FILES['image']['type'];
			$this->boyut = $_FILES['image']['size'];
			$this->gecici = $_FILES['image']['tmp_name'];
			return true;
		}
	}
	public function validate($maxdosyaboyutu,$minresimboyutu){
		if($this->tip != 'image/jpeg' && $this->tip != 'image/gif' && $this->tip != 'image/png'){
			$this->mesaj = 'Hatali dosya formati.';
			return false;
		}
		if($this->boyut > $maxdosyaboyutu){
			$this->mesaj = 'Dosya cok buyuk.';
			return false;
		}
		$boyut = getimagesize($this->gecici);
		if($boyut[0] < $minresimboyutu || $boyut[1] < $minresimboyutu){
			$this->mesaj = 'boyutlar cok kucuk.';
			return false;
		}else{
			return true;
		}
	}
	public function kirp($maxBoyut, $maxKucukBoyut){
		list($orjinalgenislik, $orjinalyukseklik) = getimagesize($this->gecici);
		if($orjinalgenislik > $orjinalyukseklik){
			$genislik = $maxBoyut;
			$yukseklik = intval($maxBoyut*($orjinalyukseklik/$orjinalgenislik));
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = intval($maxKucukBoyut*($orjinalyukseklik/$orjinalgenislik));
		}else if($orjinalgenislik < $orjinalyukseklik){
			$genislik = intval($maxBoyut*($orjinalgenislik/$orjinalyukseklik));
			$yukseklik = $maxBoyut;
			$kucukgenislik = intval($maxKucukBoyut*($orjinalgenislik/$orjinalyukseklik));
			$kucukyukseklik = $maxKucukBoyut;
		}else{
			$genislik = $maxBoyut;
			$yukseklik = $maxBoyut;
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = $maxKucukBoyut;
		}
		$this->resim = imagecreatetruecolor($genislik,$yukseklik);
		$this->kucukresim = imagecreatetruecolor($kucukgenislik, $kucukyukseklik);
		if($this->tip == 'image/gif'){
			$kaynakresim = imagecreatefromgif($this->gecici);
		}else if($this->tip == 'image/jpeg'){
			$kaynakresim = imagecreatefromjpeg($this->gecici);
		}else{
			$kaynakresim = imagecreatefrompng($this->gecici);
		}
		imagecopyresampled($this->resim,$kaynakresim,0,0,0,0,$genislik,$yukseklik,$orjinalgenislik,$orjinalyukseklik);
		imagecopyresampled($this->kucukresim,$kaynakresim,0,0,0,0,$kucukgenislik,$kucukyukseklik,$orjinalgenislik,$orjinalyukseklik);
		
	}
	public function yukle($dizin,$kalite){
		$uzanti = explode('.',$this->isim);
		$isim=date("YmdHis").rand(1,100);
		$this->yeniresim = $isim.'.'.$uzanti[1];
		$this->yenikucukresim = $isim.'kucuk.'.$uzanti[1];
		if($this->tip == 'image/gif'){
			imagegif($this->resim, ($dizin.$this->yeniresim));
			imagegif($this->kucukresim, $dizin.$this->yenikucukresim);
		}
		else if($this->tip == 'image/jpeg'){
			imagejpeg($this->resim, $dizin.$this->yeniresim, $kalite);
			imagejpeg($this->kucukresim, $dizin.$this->yenikucukresim, $kalite);
		}
		else{
			imagepng($this->resim,$dizin.$this->yeniresim);
			imagepng($this->kucukresim,$dizin.$this->yenikucukresim);
		}
		$this->mesaj = 'Dosya yuklendi.';
	}
}
if (isset($_POST['yukle'])){
	$dizin=dirname(__FILE__)."/";
	$i=new resimYukleyici;
	$i->kirp(250,250);
	$i->yukle($dizin ,100);
	echo $i->yeniresim.'<br>';
	echo '<img src="/'.$i->yeniresim.'">';
}else{
	echo '<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="yukle" value="Yükle">
	</form>';
}
?>

Çıktısı

2018062622193729.png

HTML Liste Sınıfı

<?php
header('Content-Type: text/html; charset=utf-8');
class HTML_Liste {
	var $link,$link_baslik,$font,$renk,$tip,$bg_renk;
	var $dizi = array();
	function HTML_Liste($dizi,$font,$renk,$bg_renk,$tip){
		$this->dizi = $dizi;
		$this->font = $font;
		$this->renk = $renk;
		$this->tip = $tip;
		$this->bg_renk = $bg_renk;
	}
	function goster(){
		echo "<ul style='padding-top:5px;padding-bottom:5px;background-color:$this->bg_renk;list-style-type:".$this->tip."' >";
		foreach($this->dizi as $link=>$link_baslik){
			echo "<a style='text-decoration:none;' href='$link'><li style='padding-top:1px;font-family:verdana; color:$this->renk; font-size:8pt font-style:bold;'>$link_baslik</li></a>";
		}
		echo "</ul>";
	}
}
$links = array("og.php"=>"Özgeçmiş","bilgi.php"=>"Bilgi","kurslar.php"=>"Kurslar");
$html_list = new HTML_Liste($links,'sans-serif','black','orange','disc');
$html_list->goster();
?>

Çıktısı

Saat Farkı Ekleme Çıkarma Sınıfı

<?php
class zamanDamgasi {
  var $deger = '';
  var $fark = 0;
	var $bicim="d.m.Y H:i:s";
  function zamanDamgasi($deger='') {
		date_default_timezone_set('Europe/Istanbul');
    if ($deger) {
      $this->deger = $deger;
    }else {
      $this->deger = time();
    }
  }
  function yenisaat() {
    $deger = $this->deger;
    $bicim = $this->bicim;
    if ($this->fark) {
      $saniye = $this->fark*60*60;
      $deger = $deger + ($saniye);
    }
    return date($bicim,$deger);
  }
  function mevcutsaat() {
	$deger = $this->deger;
    $bicim = $this->bicim;
    return date($bicim,$deger);
  }
  function saatFarkiEkleCikar($deger) {
    $this->fark = $deger;
  }
}
$ts = new zamanDamgasi;
$ts->saatFarkiEkleCikar(-1);
echo $ts->mevcutsaat();
echo "<br>";
echo $ts->yenisaat();
?>

Çıktısı

26.06.2018 18:21:34
26.06.2018 17:21:34