substr() ile parçalama
substr() ile bir dizenin belirli bir bölümünü almayı öğrenirsin.
substr() ile parçalama
Bir dizenin yalnızca bir bölümünü almak için substr() kullanılır. substr($string, $start, $length) biçiminde çağrılır; $start başlangıç konumu, $length alınacak karakter sayısıdır. Yeni dize döndürür, özgün dizeyi değiştirmez.
Örnek: substr('Merhaba', 0, 3) çağrısı 'Mer' döndürür. Konumlar sıfırdan başlar; yani ilk harfin konumu 0'dır.
Negatif başlangıç
$start negatif ise PHP, dizenin sonundan saymaya başlar. substr('Merhaba', -3) çağrısı son üç harfi alır: 'aba'. Bu yöntem, dize uzunluğunu bilmesen bile sondan bir kesit almak için pratiktir.
Uzunluk da negatif yazılabilir: substr('Merhaba', 0, -2) çağrısı dizenin son iki harfi hariç tümünü verir: 'Merha'. Negatif değerler dize işlemlerini esnek hale getirir.
Uzunluk verilmezse
$length parametresi isteğe bağlıdır. Verilmezse, substr() başlangıç konumundan dizenin sonuna kadar alır. substr('Merhaba', 3) çağrısı 'haba' döndürür.
Bu davranış, bir dizeden ön eki atlamak için kullanışlıdır. Örneğin dosya adından ilk dört karakteri atlamak istediğinde substr($name, 4) yazman yeter. Negatif başlangıçla birleşince oldukça esnek kesimler yapabilirsin.
Uygulama Kartın son dört hanesini gizle
$card değişkenine "4111-2222-3333-4444" dizesini ata. substr() ile son dört rakamı $last değişkenine ata (negatif başlangıç kullan). Sonra echo ile "****-****-****-" dizesini ve $last değişkenini . ile birleştirip yazdır.
Örnek çözümü göster
Önce $card'ı ata, sonra $last = substr($card, -4); yaz, sonra echo "****-****-****-" . $last; ekle.
Örnek çözüm:
<?php
$card = "4111-2222-3333-4444";
$last = substr($card, -4);
echo "****-****-****-" . $last;
Kendini test et
-
substr('Telefon', 0, 3) çıktısı nedir?
substr('Telefon', 0, 3)- elefon
- ef
- Tel
- T
Cevabı göster
Tel — Doğru. 0. konumdan 3 karakter: 'Tel'.
-
Sondan dört karakter al
$code = 'TR2025'; $suffix = substr($code, ____); echo $suffix;Cevabı göster
$code = 'TR2025'; $suffix = substr($code, -4); echo $suffix; -
substr('Merhaba', -3) çıktısı nedir?
substr('Merhaba', -3)- Mer
- haba
- rha
- aba
Cevabı göster
aba — Doğru. -3 son üç karakteri verir: 'aba'.