PHP ile Çeşitli Projelerde Kullanılabilecek Hazır Fonksiyonlar

PHP ile Çeşitli Projelerde Kullanılabilecek Hazır Fonksiyonlar

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.

Yorum gönder

This site uses Akismet to reduce spam. Learn how your comment data is processed.