Giriş yap
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?

jct
310 gün önce

Hocam substr ile her istediğiniz gerçekleştirebilirsiniz.

redline
310 gün önce

@jct hocam örnek bir kod verebilir misiniz dediğimi yapan.

hamzanavruz
310 gün önce

Merhaba, aşağıda ki şekilde kullanabilirsin

$metin = "418941232ALINACAK KISIM4509k2";

$ilk = substr($metin,0,9);
$son = substr($metin,-6);

jct
310 gün önce

@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);

redline
310 gün önce

@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.

jct
309 gün önce

@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);
tayfunerbilen
308 gün önce

basit bir regex işini çözer;

$metin = "418941232ALINACAK KISIM4509k2";
preg_match('@^[0-9]{9}(.*?)[0-9a-zA-Z]{6}[email protected]', $metin, $result);

echo $result[1];
redline
307 gün önce

@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.

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz