TR Kodlama Forumlar Basit Bir Arama Algoritmasındaki İhtiyacınız

  • Bu konu boş.
0 yanıt dizini görüntüleniyor
  • Yazar
    Yazılar
    • #6660
      oralunal
      Ziyaretçi

      Bir inputa girilen yazıyı aramak için benim kullandığım yöntem şudur:

      • Önce girilen değeri boşluklar ve virgüllerle parçalayarak bir dizi oluştururum.
      • Bu diziyi foreach döndüsünde mysql sorgusunda gerekli olacak parametrelerle hazırlarım ve birbiriyle birleştiririm.
      • Daha sonra da veritabanından sorgulatırım..

      Bu kısmı genelde kullanılan bir yöntem.. Fakat işin içine arama sistemlerinde kullanılan “” işaretleri girince işlem biraz daha zorlaşıyor. Ama bu sorun da bundan sonra olmayacak. Siz aşağıdaki arama terimlerini çok rahat sorgulatabilirken;

      Aranacak değer: videolu php dersleri
      Oluşturulan dizi: 0 => videolu, 1 => php, 2 => dersleri

      işin içine aşağıdaki gibi tırnak işaretleri girince çok da rahat sorgulatamayabilirdiniz:

      Aranacak değer: videolu “php dersleri”
      Oluşturulan dizi: 0 => videolu, 1 => php dersleri

      İşte tırnak işareti kullanan dizileri grup halinde parçalamamızı sağlayan gerekli kod aşağıdaki gibidir:
      $aranacakDeger “videolu “php dersleri””;
      $anahtarKelimeler = preg_split(“/[s,]*\”([^\”]+)\”[s,]*|” . “[s,]*'([^’]+)'[s,]*|” . “[s,]+/”, $aranacakDeger, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
      ?>
      preg_split(); fonksiyonu sayesinde tek/çift tırnak arasında kalan bölgeyi bir bütün olarak değerlendirebiliyoruz. Bu kodla boşluklara göre veya virgül işaretine göre parçalama yapıyoruz. Umarım anlatabilmişimdir..

      Kolay gelsin..[code=php:3lg3qa44]$aranacakDeger “videolu “php dersleri””;
      $anahtarKelimeler = preg_split(“/[s,]*\”([^\”]+)\”[s,]*|” . “[s,]*'([^’]+)'[s,]*|” . “[s,]+/”, $aranacakDeger, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
      ?>
      preg_split(); fonksiyonu sayesinde tek/çift tırnak arasında kalan bölgeyi bir bütün olarak değerlendirebiliyoruz. Bu kodla boşluklara göre veya virgül işaretine göre parçalama yapıyoruz. Umarım anlatabilmişimdir..

      Kolay gelsin..

0 yanıt dizini görüntüleniyor
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.