PHP projelerinde sıkça ihtiyaç duyulan fonksiyonları veritabanı işlemleri, güvenlik, veri formatlama, performans ve dosya işlemleri gibi kategorilere ayırarak paylaşacağım. Bu fonksiyonlar, geliştirme sürecini hızlandırır ve kod tekrarını önler.
1. Güvenlik Fonksiyonları
1.1. SQL Injection’dan Korunma (Veri Temizleme)
function sanitizeInput($data, $db) {
return htmlspecialchars(strip_tags($db->quote($data)));
}
Kullanım:
$username = sanitizeInput($_POST['username'], $pdo);
Bu fonksiyon, SQL Injection saldırılarını önlemeye yardımcı olur.
1.2. Güçlü Şifre Hashleme
function hashPassword($password) {
return password_hash($password, PASSWORD_BCRYPT);
}
Kullanım:
$hashedPassword = hashPassword('GüçlüParola123');
Doğrulama:
if (password_verify($password, $hashedPassword)) {
echo "Şifre doğru!";
}
Bu fonksiyon, güvenli parola saklamak için bcrypt kullanır.
1.3. Güvenli Rastgele Token Üretme
function generateToken($length = 32) {
return bin2hex(random_bytes($length));
}
Kullanım:
$csrfToken = generateToken();
Bu fonksiyon, CSRF token veya API anahtarları için rastgele güvenli bir dize üretir.
2. Veritabanı İşlemleri
2.1. Tüm Kullanıcıları Getiren Fonksiyon
function getAllUsers($db) {
$stmt = $db->query("SELECT * FROM users");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
Kullanım:
$users = getAllUsers($pdo);
print_r($users);
Bu fonksiyon, veritabanından tüm kullanıcıları çeker.
2.2. Kullanıcı Bilgisi Getirme (ID ile)
function getUserById($db, $id) {
$stmt = $db->prepare("SELECT * FROM users WHERE id = :id");
$stmt->bindParam(":id", $id, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetch(PDO::FETCH_ASSOC);
}
Kullanım:
$user = getUserById($pdo, 1);
print_r($user);
Bu fonksiyon, belirtilen ID’ye sahip kullanıcının bilgilerini getirir.
3. Veri Formatlama Fonksiyonları
3.1. Tarih Formatını Düzenleme
function formatDate($date, $format = 'd-m-Y H:i') {
return date($format, strtotime($date));
}
Kullanım:
echo formatDate("2024-03-05 15:30:00");
Bu fonksiyon, tarih formatlarını okunabilir hale getirir.
3.2. Metni Kısaltma
function truncateText($text, $length = 100) {
return strlen($text) > $length ? substr($text, 0, $length) . '...' : $text;
}
Kullanım:
echo truncateText("Bu çok uzun bir metindir ve kısaltılması gerekmektedir.", 20);
Bu fonksiyon, uzun metinleri belirli bir uzunluğa kadar kısaltır.
4. Dosya ve Klasör İşlemleri
4.1. Dosyanın Boyutunu İnsan Dostu Formatta Gösterme
function formatFileSize($bytes) {
$sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.2f %s", $bytes / pow(1024, $factor), $sizes[$factor]);
}
Kullanım:
echo formatFileSize(2048000); // 1.95 MB
Bu fonksiyon, dosya boyutlarını okunabilir bir formata dönüştürür.
4.2. Belirli Bir Dizindeki Dosyaları Listeleme
function listFiles($dir) {
return array_diff(scandir($dir), ['.', '..']);
}
Kullanım:
print_r(listFiles("uploads"));
Bu fonksiyon, belirtilen dizindeki tüm dosyaları listeler.
5. Performans Optimizasyonu
5.1. Sayfa Yükleme Süresini Ölçme
function startTimer() {
global $start_time;
$start_time = microtime(true);
}
function endTimer() {
global $start_time;
return round(microtime(true) - $start_time, 5) . ' saniye';
}
Kullanım:
startTimer();
// İşlemler burada yapılır
echo "Sayfa yükleme süresi: " . endTimer();
Bu fonksiyon, PHP betiklerinin çalışma süresini ölçer.
5.2. Bellek Kullanımını Ölçme
function getMemoryUsage() {
return round(memory_get_usage() / 1024 / 1024, 2) . ' MB';
}
Kullanım:
echo getMemoryUsage();
Bu fonksiyon, PHP betiğinin kullandığı bellek miktarını ölçer.
6. Çeşitli Faydalı Fonksiyonlar
6.1. IP Adresini Alma
function getClientIP() {
return $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
}
Kullanım:
echo getClientIP();
Bu fonksiyon, kullanıcının IP adresini döndürür.
6.2. Rastgele Şifre Üretme
function generatePassword($length = 12) {
return substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"), 0, $length);
}
Kullanım:
echo generatePassword(16);
Bu fonksiyon, rastgele bir güçlü şifre oluşturur.