- Mesaj
- 11.950
- Çözümler
- 567
- Beğeni
- 13.748
- Puan
- 5.915
- Ticaret Puanı
- 2
Merhabalar,
Bugün çok takıldığım bir şey vardı. İnternette tam olarak kaynak bulamadım ama sonradan hallettim bende size anlatmak istiyorum.
Anlık arama işlemi yaptıracağınız zaman aradığınız terimin gelen verilerde orijinaldeki gibi büyük ve küçük olmasını sağlamak istiyorsanız ilk önce yapmanız gereken metin içinde bulduğunuz kelimeyi orijinal yazıdan da almak.
Peki ne anlatmaya çalışıyorsun diyebilirsiniz. Mesela bir örnek veriyim;
Bu kod ekrana şu şekilde yazı yazacaktır.
Not: str_ireplace => büyük ve küçük harf duyarlılığı olmadan değişim yapar.
Yani aranılan terimi bulduğu sonuçlarda kullanıcının gönderdiği gibi değiştiriyor. Örnek;
Fakat benim ihtiyacım olan gelen sonuçlarda aradığım terimle aynı olan karakterleri kalın yapmak. Yani orijinal içerikte büyük ve küçük karakterler nasılsa birebir aynı olmasını istiyorum. Peki bunu nasıl yaptım.
Php'de strpos diye bir fonksiyon var bu fonksiyon bir stringde aradığınız şey bulunursa ilk dizinin anahtarını verir.
Örnek;
Burada da stripos diyerek büyük ve küçük duyarlılığı olmadan arama yapmasını istedik ve aradığımız terim yazının hangi tarafındaysa ilk değerini verir. Bu ekrana 0 yazdıracaktır.
Biz şu şekilde arama yapsaydık;
Ekran çıktısı şu olacaktır;
Bunu anladığımızı varsayıyorum.
Php'de birde yazıların uzunluğunu alabileceğiniz bir fonksiyon var. Bu da strlen fonksiyonudur.
Örnek;
Ekran çıktısı şu olacaktır;
Bu işlemi tamamlamak için de bir tane daha fonksiyonu tanımam gerekiyor. Bu da substr(string, baslangic, uzunluk) fonksiyonudur.
Bu fonksiyon belirttiğiniz sayı aralığına göre yazıda yer alan kısmı alır. Örnek;
Bu ekrana şunu yazdırır.
Bunların hepsini öğrendiğimize göre uygulamamız için gerekli olan şu algoritmayı oluşturabiliriz o halde.
Bu ise ekrana şöyle yazacak;
Not: $değistir kısmını şu şekilde de yapabilirsiniz.
Çalıştığıyla ilgili canlı örnekler;
Bugün çok takıldığım bir şey vardı. İnternette tam olarak kaynak bulamadım ama sonradan hallettim bende size anlatmak istiyorum.
Anlık arama işlemi yaptıracağınız zaman aradığınız terimin gelen verilerde orijinaldeki gibi büyük ve küçük olmasını sağlamak istiyorsanız ilk önce yapmanız gereken metin içinde bulduğunuz kelimeyi orijinal yazıdan da almak.
Peki ne anlatmaya çalışıyorsun diyebilirsiniz. Mesela bir örnek veriyim;
PHP:
$yazi = "Sevgi Bileziği";
$aramaterimi = "sev";
echo str_ireplace($aramaterimi, "<strong>$aramaterimi</strong>", $yazi);
sevgi Bileziği
Not: str_ireplace => büyük ve küçük harf duyarlılığı olmadan değişim yapar.
Yani aranılan terimi bulduğu sonuçlarda kullanıcının gönderdiği gibi değiştiriyor. Örnek;
Fakat benim ihtiyacım olan gelen sonuçlarda aradığım terimle aynı olan karakterleri kalın yapmak. Yani orijinal içerikte büyük ve küçük karakterler nasılsa birebir aynı olmasını istiyorum. Peki bunu nasıl yaptım.
Php'de strpos diye bir fonksiyon var bu fonksiyon bir stringde aradığınız şey bulunursa ilk dizinin anahtarını verir.
Örnek;
PHP:
stripos("Sevgi Bileziği", "sev");
Burada da stripos diyerek büyük ve küçük duyarlılığı olmadan arama yapmasını istedik ve aradığımız terim yazının hangi tarafındaysa ilk değerini verir. Bu ekrana 0 yazdıracaktır.
Biz şu şekilde arama yapsaydık;
PHP:
stripos("Sevgi Bileziği", "bile");
Bunu anladığımızı varsayıyorum.
Php'de birde yazıların uzunluğunu alabileceğiniz bir fonksiyon var. Bu da strlen fonksiyonudur.
Örnek;
PHP:
echo strlen("sev")
Bu işlemi tamamlamak için de bir tane daha fonksiyonu tanımam gerekiyor. Bu da substr(string, baslangic, uzunluk) fonksiyonudur.
Bu fonksiyon belirttiğiniz sayı aralığına göre yazıda yer alan kısmı alır. Örnek;
PHP:
echo substr("Sevgi Bileziği", 6, 3)
Bunların hepsini öğrendiğimize göre uygulamamız için gerekli olan şu algoritmayı oluşturabiliriz o halde.
PHP:
$aramaTerimi = "sev";
$text = "Sevgi Bileziği"
$baslangic = stripos($text, $aramaTerimi);
$bitis = strlen($aramaTerimi);
$bulunanKelime = substr($text, $baslangic, $bitis);
$degistir = str_ireplace($aramaTerimi, "<strong>$bulunanKelime</strong>", $text);
Sevgi Bileziği
Not: $değistir kısmını şu şekilde de yapabilirsiniz.
PHP:
$degistir = str_replace($bulunanKelime, "<strong>$bulunanKelime</strong>", $text);
Çalıştığıyla ilgili canlı örnekler;
Son düzenleme: