Xampp Php 7.4 x86 32bit VC15

 XAMPP for Windows 7.4.29 sürümü 64 bit olduğundan sizlere 32 bitlik sürümünü hazırladım.

  • Apache/2.4.38 (Win32) OpenSSL/1.1.1a PHP/7.4.29
  • Veritabanı istemcisi sürümü: libmysql – mysqlnd 7.4.29
  • PHP uzantısı: mysqli  curl  mbstring 
  • PHP sürümü: 7.4.29
  • Sunucu sürümü: 10.1.38-MariaDB – mariadb.org binary distribution
  • phpMyAdmin Sürüm bilgisi: 5.2.0
<?php //32bit
$whitelist = array('127.0.0.1','::1');
if(!in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
  $mysqli= @new mysqli("localhost","root","");
}
?>

Tıkla İndir 203MB

Phpmyadmin Güncellemesi İndir 13MB

Mysql Sıradaki Atlanmış Boş Otomatik Id Numaralarını Bulma

Bazen auto increment kullanırken aradan veriler silinebiliyor. Bu şekilde bir kullanım ile tekrar boş idleri doldurabilirsiniz

SELECT t1.id+1 AS siradaki FROM urun AS t1 WHERE 0=(SELECT COUNT(t2.id) FROM urun AS t2 WHERE t2.id=t1.id+1 order by t2.id asc) order by t1.id asc LIMIT 1

Yukarıdaki örnekte urun adlı tablodaki id sütununa göre arama yapar ve sıradaki boş id leri çağırır.

Örneğin 1,2,3,5,6 gibi bir veride 4 sonucunu verir.

SELECT t1.id+1 AS siradaki FROM urun AS t1 WHERE 0=(SELECT COUNT(t2.id) FROM urun AS t2 WHERE t2.id>=t1.id+1 and t2.id<=t1.id+21 order by t2.id asc) and t1.id>1000 order by t1.id asc LIMIT 1

Yukarıdaki örnekte urun adlı tablodaki id sütununa göre arama yapar,1000 nolu id’den büyük ve arada 20 adet ardışık boş id bulunan değerleri döndürür.

Örneğin 1025,1028,1030,1051 gibi bir veride 1031 sonucunu verir

Phpmyadmin Binary Veriyi Utf8 Görüntüleme

$result = bin2hex($content);
$result = pack('H*', $result);
$result = mb_convert_encoding($result, "UTF-8","ISO-8859-9");
$result = htmlspecialchars($result);

phpMyAdmin\libraries\classes\Display\Results.php içerisinde yaklaşık 5000.satırda handleNonPrintableContents fonksiyonu içerisindeki bin2hex fonksiyonunun olduğu satırı yukarıdaki şekilde değiştirin.

Phpmyadmin root şifresi oluşturma

Phpmyadmin sql kısmından aşağıdaki kodu girdiğiniz zaman şifreniz mysql olacaktır.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mysql');
FLUSH PRIVILEGES;

Daha sonra phpmyadmin dosyalarının kurulu olduğu dizinden config.inc.php dosyasında bu satırı şifreniz ile değiştiriniz.

$cfg['Servers'][$i]['password'] = 'mysql';

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.

class Sınıfım{ function fonksiyonum(){ } }

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.