رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تابع بررسی وجود رشته 1 در رشته 2
#1
Sad 
سلام دوستان
سه ساعته دارم با تابع های نظیر strstr , strpos , strrpos , strchr و... سر و کله میزنم ولی با هیچ کدوم نتونستم چیزی که میخوام رو درست کنم . Angry (احتمال میدم مشکل از هاست باشه ...)
من میخوام یک فیلتر کلمات بسازم که ممکنه توش کلمه یا واژه فارسی / انگلیسی باشه و بخوایم توی یک متن دیگه ببینم اینا هستند یا نه .
کدوم یک از توابع جوابگوی نیاز من هست ؟ Huh
لطفا یک مثال برای شرطش هم بزنید چون ظاهرا توابع خروجیشون متفاوته یکی عدد میده بیرون یکی true/false یکی هم بخشی از متن رو .
پیشاپیش سپاس از راهنماییتون Heart
پاسخ
تشکر شده توسط:
#2
اینو تست کنید:
class Filter
{
    public $illegalWords = array('kill', 'crime', 'قتل', 'جنایت');

    public function checkExistance($string, $illegalWords = null)
    {
        if(!$illegalWords) {
            $illegalWords = $this->illegalWords;
        }
        foreach($illegalWords as $illegalWord) {
            if(stripos($string, $illegalWord) !== false) {
                return true;
            }
        }
        return false;
    }

    public function clean($string, $illegalWords = null)
    {
        if(!$illegalWords) {
            $illegalWords = $this->illegalWords;
        }
        foreach($illegalWords as $illegalWord) {
            $string = str_ireplace($illegalWord, str_repeat('*', mb_strlen($illegalWord, 'utf-8')), $string);
        }
        return $string;
    }
}

$string = 'قتل انسانهای بیگناه یک جنایت واقعی است. Killing innocent people is a real crime.';

$filter = new Filter();

if($filter->checkExistance($string)) {
    echo $filter->clean($string); // output: *** انسانهای بیگناه یک ***** واقعی است. ****ing innocent people is a real *****.
}
پاسخ
تشکر شده توسط: php , sorkhabi




کاربران در حال بازدید این موضوع: 1 مهمان