PHP ile Metnin Başından ve Sonundan Karakter Silme
Merhaba arkadaşlar.
$metin = "418941232ALINACAK KISIM4509k2";
Yukarıda görünen $metin
değişkenimizin başında ve sonunda belli sayıda karakterler var. Bu karakterler değişken fakat sayısı belli.
Başında 9 karakter, sonunda 6 karakter var.
$metin
değişkenimizin başından 9 karakter, sonundan 6 karakter silerek ALINACAK KISIM
çıktısını nasıl alabiliriz?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
@jct
Teşekkür ederim hocam çalıştı bu sefer. :)
@tayfunerbilen
Askerlik göz kapatıp açıncaya kadar bitmiş Tayfun Hocam. :D
Bu arada fonksiyon haline getirecem kodları. @jct'nin vermiş olduğu kod mu daha performanslı çalışır, preg_match
fonksiyonu mu emin olamadım.
basit bir regex işini çözer;
$metin = "418941232ALINACAK KISIM4509k2";
preg_match('@^[0-9]{9}(.*?)[0-9a-zA-Z]{6}$@i', $metin, $result);
echo $result[1];
@redline Hocam şu şekilde olmalı
$Deger = "418941232ALINACAK KISIM4509k2";
$Uzunluk = strlen($Deger); // Öncelikle Değer'in uzunluğunu tespit etmelisiniz;
$Basla = 9; // 9. Karakter'den Başlasın
$Bitir = $Uzunluk - ( $Basla + 6) ; // Sondan 6 Karakter Olmasın
$Sonuc = substr($Deger, $Basla, $Bitir);
@hamzanavruz
Hocam verdiğiniz kod ile almamız gereken sonuç haricinde baştaki ve sondaki verileri alıyoruz ancak. :)
@jct
Hocam yazdığınız kodu editöre kopyalayıp $Sonuc değişkenini yazdırdığımızda sonuç ALINACAK KISIM4509k2
olarak çıkıyor. :)
Sizlere çalışan kodu vereyim bu konuyla ilgili bu mantıklarla daha önce yaptım fakat patladığı bir nokta var. O yüzden buraya sorma ihtiyacı duydum.
$value = "41894123ALINACAK4509k25548";
$end = substr($value, -10 ,10); // Sondan 10 Karakteri Alıyoruz.
$start = substr($value, 0 ,8); // Baştan 8 Karakteri Alıyoruz.
$result = str_replace([$start, $end], null, $value); // Metnin İçinden Eşleşenleri Siliyoruz.
echo $result; // Çıktıyı yazdırıyoruz.
Yukarıdaki işlemin çıktısı ALINACAK
olarak çıkacaktır. Buraya kadar sorun yok.
Fakat $value değişkenimiz $value = "ALINACAKALINACAK0541131541";
şeklinde olsaydı ilk karakterler ortadaki kısımlada eşleştiği için silecekti.
@redline Hocam şu kod dizilimi işinizi görebilir;
$Deger = "418941232ALINACAK KISIM4509k2";
$Uzunluk = strlen($Deger); // Öncelikle Değer'in uzunluğunu tespit etmelisiniz;
$Basla = 9; // 9. Karakter'den Başlasın
$Bitir = $Uzunluk - 6; // Sondan 6 Karakter Olmasın
$Sonuc = substr($Deger, $Basla, $Bitir);
Merhaba, aşağıda ki şekilde kullanabilirsin
$metin = "418941232ALINACAK KISIM4509k2";
$ilk = substr($metin,0,9);
$son = substr($metin,-6);