• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ساخت فیلتر لغات بد
#1
سلام
من کد زیر رو برای فیلتر کردن لغات بد در یک متن نوشتم که هربار که تست کردم دیدم فقط اخرین مقدار ارایه رو فیلتر میکنه!Huh
مشکل از کجاست ؟
کد :
کد پی‌اچ‌پی:
<?php

//code loghat bad
$bad_words = array('Badword' => 'filtershavad''badtar' => 'filterbad''abcd' => 'filters');

//motor entekhab
reset($bad_words);
while( list(
$word$filter) = each($bad_words)) {
$kalame $word;
$filterk $filter;
}

//matn bad
$matn 'badtar va abcd va Badword va badtar';

//motor replace kardan
$replace_bad_words str_replace($kalame$filterk$matn);

//khoroji
$matn_salem $replace_bad_words;
echo 
$matn_salem;

?>

من هربار که اجراش میکنم خروجی زیر رو میده :
badtar va filters va Badword va badtar

مشکل رو لطفا راهنمایی کنین...
ایا روش بهتری هم هست؟Sad
  پاسخ
تشکر شده توسط :
#2
این چه‌ نوع کد نویسی هست؟ یه حلقه گذاشتی و متغیرهایی که توی حلقه به دست اومده خارج از حلقه گذاشتی؟
منوال‌ رو کامل خوندین؟
http://php.net/manual/en/function.str-replace.php
str_replace می تونه آرایه به عنوان ورودی بگیره
  پاسخ
تشکر شده توسط : faghani hidensoft
#3
حواسم نبودBlush
پاک یادم رفته بودConfused

داریم پیر میشیم دیگهBig Grin


با تشکر
  پاسخ
تشکر شده توسط :
#4
چرا
کد پی‌اچ‌پی:
reset($bad_words); 
؟
یادت نره که str_ireplace
Case-insensitive
و شاید بهترش:
mb_eregi_replace

این هم Clone تابع str_ireplace برای PHP4
کد پی‌اچ‌پی:
# http://ir.php.net/manual/en/function.str-ireplace.php

  
function str_ireplace($search,$replace,$subject){
    
$token chr(1);
    
$haystack strtolower($subject);
    
$needle strtolower($search);
    while ((
$pos=strpos($haystack,$needle))!==FALSE){
      
$subject substr_replace($subject,$token,$pos,strlen($search));
      
$haystack substr_replace($haystack,$token,$pos,strlen($search));
    }
    
$subject str_replace($token,$replace,$subject);
    return 
$subject;
  } 
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط : hidensoft faghani


پرش به انجمن:


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