Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

PHP trim nedir?​


PHP'deki trim() işlevi, bir metnin başındaki ve sonundaki gereksiz karakterleri kaldırır ve temizlenmiş yeni metni döndürür. Varsayılan olarak boşluk, sekme, satır sonu ve benzeri kenar karakterlerini siler; metnin ortasındaki boşluklara dokunmaz.

Temel kullanım​


İşlevin en basit biçimi şöyledir:

Kod:
$temizMetin = trim($metin);

trim() değişkenin değerini yerinde değiştirmez. Sonucu aynı değişkene atamak veya başka bir değişkende kullanmak gerekir. Değişkenin başında ya da sonunda anlamlı olarak korunması gereken boşluklar varsa trim() uygulamadan önce bu davranışı özellikle değerlendirin.

Örnek ve beklenen sonuç​


Aşağıdaki dosyayı trim-ornek.php adıyla kaydedip PHP CLI ile çalıştırabilirsiniz:

Kod:
<?php
$girdi = "  PHP ile web geliştirme  \n";

$sonuc = trim($girdi);

var_export($sonuc);
echo PHP_EOL;

Komut satırında şu komutu çalıştırın:

Kod:
php trim-ornek.php

Beklenen çıktı şöyledir:

Kod:
'PHP ile web geliştirme'

Çıktının başında veya sonunda boşluk görünmüyorsa işlem başarılıdır. Başındaki ve sonundaki karakterler hâlâ görünüyorsa değer, varsayılan trim() karakter kümesinde bulunmayan özel bir karakter içeriyor olabilir. Değerin ortasındaki birden fazla boşluğun korunması normaldir; trim() metin içi boşlukları düzenlemez.

Varsayılan davranış ve özel karakter listesi​


İkinci parametre verilmezse PHP, metnin kenarlarındaki standart boşluk karakterlerini temizler. Yalnızca belirli karakterleri silmek istediğinizde ikinci parametreyi kullanabilirsiniz:

Kod:
$kod = "...ABC123...";
$temizKod = trim($kod, ".");

echo $temizKod; // ABC123

Buradaki "." ifadesi yalnızca nokta karakterlerinin baştan ve sondan kaldırılacağını belirtir. Bu parametre bir düzenli ifade değildir; temizlenecek karakterlerden oluşan bir karakter listesidir. Bu nedenle trim($metin, "abc") ifadesi, "abc" kelimesini arayıp silmez; a, b ve c karakterlerini kenarlardan kaldırır.

Aşağıdaki karşılaştırma hangi işlevin kullanılacağını seçmeyi kolaylaştırır:

İşlevTemizlenen bölümUygun kullanım
trim()Baş ve sonKullanıcı girdisinin kenar boşluklarını temizlemek
ltrim()Yalnız başlangıçMetnin başındaki dolgu karakterini kaldırmak
rtrim()Yalnız sonSatır sonunu veya sondaki dolgu karakterini kaldırmak

Form verilerinde pratik kullanım​


Bir form alanından gelen değeri karşılaştırmadan, doğrulamadan veya veritabanına kaydetmeden önce kenar boşluklarını temizlemek yaygın bir kullanımdır:

Kod:
$ham = $_POST['kullanici_adi'] ?? '';

if (!is_string($ham)) {
    http_response_code(400);
    exit('Geçersiz alan biçimi.');
}

$kullaniciAdi = trim($ham);

if ($kullaniciAdi === '') {
    echo 'Kullanıcı adı boş bırakılamaz.';
} else {
    echo 'Kullanıcı adı alındı: ' . htmlspecialchars(
        $kullaniciAdi, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'
    );
}

Burada ?? '' alan eksikse boş bir başlangıç değeri sağlar; alanın dizi olarak gönderilmesi ayrıca reddedilir. HTML metnine eklenen değer de ayrı olarak kodlanır. Ancak trim() doğrulamanın tamamı değildir. Uzunluk, izin verilen karakterler, e-posta biçimi veya iş kuralı ayrıca kontrol edilmelidir. trim() ayrıca HTML kaçışlama, SQL güvenliği ya da Unicode normalleştirme yapmaz.

Sık yapılan hatalar ve sınırlar​


  • Sonucu atamamak: trim($metin); çağrısı tek başına değişkeni değiştirmez. $metin = trim($metin); şeklinde atama yapın.
  • Ortadaki boşlukları temizlemesini beklemek: "Ali Veli" içindeki boşluklar korunur. İç boşlukları düzenlemek için ayrıca uygun bir metin işlemi gerekir.
  • Anlamlı kenar boşluğunu kaybetmek: Metin biçimlendirme veya sabit genişlikli veri üreten bir işlemde trim() kullanmak içeriğin anlamını değiştirebilir.
  • Özel Unicode boşluklarını standart boşluk sanmak: UTF-8 metinlerdeki her görünmez karakter varsayılan karakter listesiyle aynı şekilde temizlenmeyebilir. Böyle bir veriyle çalışıyorsanız önce hangi karakterin bulunduğunu tespit edip Unicode uyumlu bir çözüm seçin.

trim(), bir metnin yalnızca kenarlarını temizlemek için kullanılır. Form veya karşılaştırma verilerinde önce sonucu bir değişkene atayın, sonra boşluk temizlenmiş değeri doğrulama ve işleme adımlarına aktarın.

Sık sorulan sorular​


Parola alanına otomatik trim uygulanmalı mı?​


Kullanıcının girdiği baştaki veya sondaki boşluk parolanın anlamlı bir parçası olabilir. Bir alan için normalleştirme kuralını açıkça belirleyin; özellikle parola doğrulamasından önce sessizce karakter silmeyin. Kullanıcı adı için uygun olan dönüşüm her veri türüne uygulanmaz.

Temizlenen değer sıfırsa boş kabul edilir mi?​


trim(" 0 ") sonucu "0" metnidir ve boş metin değildir. Yalnız boş metni sınamak için $sonuc === '' karşılaştırmasını kullanın; genel doğruluk/yanlışlık kontrolü sıfırı da yanlış sayabilir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.