• 19-08-2015, 20:06:43
    #1
    Merhaba,
    formdan gelen bir verinin bir array listesi içerisindeki herhangi bir değeri içerdiğinde/içermediğinde true/false değerini nasıl alabiliriz.

    Birebir eşleştiğinde alabiliyorum fakat, içerdiğinde alamıyorum.

    Aynı zamanda bu gelen verinin içeriğinde;[*] gibi bir betik var ise onu sildirmek istiyorum.
  • 19-08-2015, 21:23:52
    #2
    bir döngü içerisinde strpos ve multibyte için (uft8 ..) için mb_strpos ile yapabilirsin
  • 20-08-2015, 01:55:50
    #3
    Merhaba,

    <?php
    
    
    function customSearch($example, $searchword){
    $ok="";
    	foreach($example as $k=>$v) {
        if(preg_match("/\b$searchword\b/i", $v)) {
            $ok ="true";
        } 
    }
    	if($ok == "true") return true; else return false;
    }
    
    $arr = array("selami şahin","naber bakalım","selam sana","r10 nokta net.");
    
    
    
    var_dump( customSearch($arr,"r10"));
    var_dump( customSearch($arr,"selam"));
    var_dump( customSearch($arr,"murtaza"));
    ?>
  • 20-08-2015, 11:42:27
    #4
    bluexpres adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    <?php
    
    
    function customSearch($example, $searchword){
    $ok="";
    	foreach($example as $k=>$v) {
        if(preg_match("/\b$searchword\b/i", $v)) {
            $ok ="true";
        } 
    }
    	if($ok == "true") return true; else return false;
    }
    
    $arr = array("selami şahin","naber bakalım","selam sana","r10 nokta net.");
    
    
    
    var_dump( customSearch($arr,"r10"));
    var_dump( customSearch($arr,"selam"));
    var_dump( customSearch($arr,"murtaza"));
    ?>
    bugün imkan bulursam, deneyip sonucu yazacağım. teşekkür ederim.
  • 20-08-2015, 14:44:02
    #5
    Merhaba,
    bu tarz ufak testleri yapmak için sunucunuzu kullanmak yerine online sistemleri kullanabilirsiniz. hemen her dil için bu tip siteler mevcut.

    kodun testi için ; https://dbgr.cc/QI
    ben teşekkür ederim.
  • 20-08-2015, 16:00:50
    #6
    Merhaba,
    https://dbgr.cc/_t buradaki örneğe göre tüm sorgularda true değerini almamız için nasıl bir değişiklik gerekir acaba
  • 20-08-2015, 17:02:20
    #7
    Toredo adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    https://dbgr.cc/_t buradaki örneğe göre tüm sorgularda true değerini almamız için nasıl bir değişiklik gerekir acaba
    Tam olarak ne yapmak istediğinizi anlamadım. Şunlar ;
    var_dump(customSearch($arr,"admine"));
    var_dump(customSearch($arr,"zadmin"));

    ve diziniz mantıksız bir şey üzerine gittiğiniz hissi uyandırıyor.

    Tam olarak amacınızı açıklayabilirseniz belki daha sağlıklı bir yol bulunur. Gereksiz bir durum için algoritmalar üzerine kafa yormak anlamlı olmayacaktır.
  • 20-08-2015, 17:16:36
    #8
    bir kullanıcı kayıt formu düşünelim.

    admin, admİn ve içerisinde[*] betiği geçen isimlere izin vermeyeceğim.

    örnek olarak kullanılamayacak; admin, admİn, xadmin, adminx, xadmİn, admİnx, [örnek], örnek[abc], [abc]örnek

    umarım anlatabilmişimdir
  • 20-08-2015, 18:07:54
    #9
    evet gayet net açıkladınız. şu durumda yasaklı kelimeleri bi dizi yapmanız gerekmiyor gibi.

    sizin içerisinde admin kelimesi ve[*] var mı yok mu bakmanız yeterli.
    en basit yolla buna bakabilirsiniz.

    ama eğer admin root gibi çokca kelime sözkonusu ise o zaman ;

    if (preg_match("/\b$searchword\b/i", $v) || (preg_match('/\[.*?\]/i',$searchword) == true)) {
         $ok="true";
            }
    bu şekilde hem kelimeyi hem de[*] kontrol edebilirsiniz. ADMİN vs durumu için post olan username'i strtolower yapabilirsiniz. hızlıca düzenlediğim şu kodlara bakabilirsiniz ;
    https://eval.in/private/53ac214643aa8d



    Toredo adlı üyeden alıntı: mesajı görüntüle
    bir kullanıcı kayıt formu düşünelim.

    admin, admİn ve içerisinde[*] betiği geçen isimlere izin vermeyeceğim.

    örnek olarak kullanılamayacak; admin, admİn, xadmin, adminx, xadmİn, admİnx, [örnek], örnek[abc], [abc]örnek

    umarım anlatabilmişimdir