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.
Array listesi karşılaştırma hakkında
13
●698
- 19-08-2015, 21:23:52bir döngü içerisinde strpos ve multibyte için (uft8 ..) için mb_strpos ile yapabilirsin
- 20-08-2015, 01:55:50Merhaba,
<?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:27bugün imkan bulursam, deneyip sonucu yazacağım. teşekkür ederim.bluexpres adlı üyeden alıntı: mesajı görüntüle
- 20-08-2015, 14:44:02Merhaba,
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:50Merhaba,
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:20Tam olarak ne yapmak istediğinizi anlamadım. Şunlar ;Toredo adlı üyeden alıntı: mesajı görüntüle
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, 18:07:54evet 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