Menu

PHP trim(): Dizgeden Boşlukları Silme

trim($string) bir dizgenin iki ucundan boşlukları, sekmeleri ve yeni satırları siler; ltrim() ve rtrim() tek tarafı temizler. Belirli karakterleri, Japonca tam genişlikte boşluğu ve bir dizideki her değeri kırpmayı öğrenin.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

trim($string) dizgeyi başından ve sonundan boşluklar silinmiş olarak döndürür: boşluklar, sekmeler, yeni satırlar, satır başı karakterleri, NUL baytları ve dikey sekmeler. ltrim() yalnızca baştan, rtrim() yalnızca sondan siler. Ortadaki boşluklar korunur.

var_dump() çıktısı her sonucun uzunluğunu gösterir, bu da silinen karakterleri görünür kılar. Bir formdan gelen çoğu değerle yapılacak ilk iş kırpmaktır (parolalar istisnadır, sayfanın sonuna bakın): sonunda bir boşlukla ada@example.com yazan bir kullanıcı yine de giriş yapabilmelidir.

Söz dizimi

trim(string $string, string $characters = " \n\r\t\v\0"): string
ltrim(string $string, string $characters = " \n\r\t\v\0"): string
rtrim(string $string, string $characters = " \n\r\t\v\0"): string

trim() yeni bir dizge döndürür; verdiğiniz değişkeni değiştirmez.

Belirli karakterleri kırpma

İkinci argüman varsayılan listenin yerine geçer. İçindeki her karakter, herhangi bir sırada ve herhangi bir sayıda uçlardan silinir. .. bir aralık tanımlar, yani 'a..z' her küçük harf demektir.

Normal boşlukları da silmeye devam etmek için onları listeye ekleyin: trim($s, " \n\r\t\v\0/").

İkinci argüman bir dizge değil, bir karakter kümesidir

trim() bir kelimeyi veya soneki silmez. Listelediğiniz karakterlerden herhangi birini, listede olmayan bir karaktere ulaşana kadar iki uçtan siler. Bu, bir dosya uzantısını silmeye çalışanları şaşırtır:

İlk satır baştaki h harfini de siler, çünkü h kümededir. Sabit bir öneki veya soneki silmek için substr() ile birlikte str_starts_with() veya str_ends_with() kullanın, metin başka hiçbir yerde geçemiyorsa str_replace() kullanın.

Tam genişlikte boşluğu kırpma (Japonca girdi)

Japonca klavyeler çoğu zaman ideografik boşluk   (U+3000) üretir, örneğin bir forma yazılan bir ismin etrafında. Bu boşluk trim fonksiyonunun varsayılan listesinde yoktur ve onu ikinci argümanda listelemek bir tuzaktır: trim() bayt bayt çalışır, boşluk E3 80 80 baytlarından oluşur ve E3 her hiragana ve katakana karakterinin de ilk baytıdır, bu yüzden bunlardan biriyle başlayan bir isim o karakterin ilk baytını kaybeder. u değiştiricisiyle bir düzenli ifade kullanın:

\A ve \z dizgenin başına ve sonuna sabitlenir. u değiştiricisiyle \s her Unicode boşlukla eşleşir: ASCII boşluklar, tam genişlikte boşluk ve web sayfalarından kopyala yapıştırın sıkça getirdiği bölünemez boşluk (U+00A0). u olmadan \s yalnızca ASCII boşluklarla eşleşir ve tam genişlikte boşluk kalır. PHP 8.4 bunun için mb_trim(), mb_ltrim() ve mb_rtrim() ekler; PHP 8.3 ve öncesinde yol düzenli ifadedir.

Bir dizideki her değeri kırpma

array_map('trim', $array) her değeri kırpar ve anahtarları korur. Tipik bir durum, bir metin alanından gelen ve explode() ile bölünen virgülle ayrılmış bir listedir:

Doğrulamadan önce bir form değerini kırpma

Önce kırpın, sonra boş dizge kontrolü yapın. Yalnızca boşluk içeren bir alan o zaman boş olarak reddedilir. Bu bloğu çalıştırın, forma etrafında boşluklar olan bir isim yazın ve Send düğmesine basın: aynı betik $_POST doldurulmuş olarak yeniden çalışır.

Parolaları kırpmayın: bir parolanın sonundaki boşluk parolanın bir parçasıdır.

Sıkça Sorulan Sorular

PHP'de trim() neyi siler?

Varsayılan olarak dizgenin iki ucundan şunları: boşluklar, sekmeler (\t), yeni satırlar (\n), satır başı karakterleri (\r), NUL baytları (\0) ve dikey sekmeler (\v). Dizgenin ortasına asla dokunmaz.

trim, ltrim ve rtrim arasındaki fark nedir?

trim() iki ucu, ltrim() yalnızca başı, rtrim() yalnızca sonu temizler. Üçü de silinecek karakterlerin aynı isteğe bağlı listesini alır.

trim() neden Japonca tam genişlikte boşluğu silmiyor?

Tam genişlikte boşluk (U+3000) trim fonksiyonunun varsayılan listesinde yoktur ve UTF-8'de 3 bayttır. preg_replace('/\A\s+|\s+\z/u', '', $s) kullanın: u değiştiricisiyle \s U+3000 dahil her Unicode boşlukla eşleşir. PHP 8.4 onu da silen mb_trim() fonksiyonunu ekler.

PHP'de bir dizgedeki son virgülü nasıl silerim?

rtrim($s, ',') sondaki tüm virgülleri siler. Ardından bir boşluk gelebiliyorsa boşluğu da ekleyin: rtrim($s, ', ').

Bir dizideki her değeri nasıl kırparım?

array_map('trim', $array) anahtarları koruyarak her değeri kırpılmış yeni bir dizi döndürür. İç içe diziler için bir referansla array_walk_recursive() kullanın.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA