PDA

View Full Version : سوال: سوالی در مورد ف _ ی _ ل _ ت _ ر کردن ورودی کاربر (در سیستم کامنت)



Jason.Bourne
چهارشنبه 21 فروردین 1392, 16:25 عصر
در سیستمی می خواهم ورودی کاربر را بر اساس برخی از لغات و عبارات ف _ ی _ ل _ ت _ ر کنم.
کلماتی که باید وجود آنها را در ورودی کاربر بررسی کنم، در دیتابیس ذخیره می شوند.

سوال من این هست که با چه مکانیزمی کلمات مورد بررسی قرار بگیرند که کمترین هزینه را برای سیستم داشته باشه؟


1- برای هر بار بررسی ورودی، به دیتابیس وصل شوم و کلمات را از دیکشنری مورد نظرم بخوانم (دیکشنری در دیتابیس ذخیره شده)
2- یکبار دیکشنری را از دیتابیس بخونم و آنها را در یک متغیر Session ذخیره کنم؟ (اگر حجم کلمات زیاد باشد، آیا این روش درست هست؟)
3- یکبار دیکشنری را از دیتابیس بخونم و آنها را درون یک فایل بنویسم و از این پس، کلمات مورد نظرم را از درون فایل بخوانم؟
4- ...


متشکرم

siavashsay
چهارشنبه 21 فروردین 1392, 18:36 عصر
دوست عزیز !
جواب این سوال زیاد سخت نیس ! به هر حال شما 2 حالت دارید :
1- داده ها رو قبل از ریختن توی دیتابیس فیلتر کنید که در اینصورت داده های دیتابیس یک سری داده های فیلتر شده و تمیز هستند !
2- داده ها رو موقع فراخونی از دیتابیس فیلتر کنید !
همین !
البته بستگی به نوع فیلتر کردن شما هم داره ! که منظوراز فیلتر چی باشه !
موفق باشید

Jason.Bourne
چهارشنبه 21 فروردین 1392, 20:14 عصر
سوال من در مورد بازیابی کلماتی است که باید در متن اصلی فیلتر شوند.

پ.ن
کلماتی که باید از متن اصلی حذف شوند در دیتابیس قرار دارند.

siavashsay
چهارشنبه 21 فروردین 1392, 20:30 عصر
با تابع str_replace میتونید کاراکترهای مورد نظر رو دریافت و با کاراکتر مورد نظر جایگزین کنید !

Jason.Bourne
چهارشنبه 21 فروردین 1392, 20:42 عصر
نمی دونم شما منظور من را متوجه نمی شوید یا من بد بیان می کنم.

ببینید:
مشکلی در جایگزین کردن کلمات ندارم.
میخواهم بدانم بهینه ترین روش برای استفاده از دیکشنری کلمات ممنوعه که در دیتابیس ذخیره کرده ام، چیست!

مثال میزنم.
من یک دیشکنری در دیتابیس دارم که میخواهم وقتی کاربر متنی را وارد کرد، کلماتی که در دیکشنری دارم از متن کاربر حذف شوند.

حالا از میان راه های زیر کدام بهینه تر هست:
1- برای هر بار بررسی ورودی، به دیتابیس وصل شوم و کلمات را از دیکشنری مورد نظرم بخوانم (دیکشنری در دیتابیس ذخیره شده)
2- یکبار دیکشنری را از دیتابیس بخونم و آنها را در یک متغیر Session ذخیره کنم؟ (اگر حجم کلمات زیاد باشد، آیا این روش درست هست؟)
3- یکبار دیکشنری را از دیتابیس بخونم و آنها را درون یک فایل بنویسم و از این پس، کلمات مورد نظرم را از درون فایل بخوانم؟
4- ...

راه دیگری هم اگر وجود دارد، لطفا پیشنهاد دهید.

MMSHFE
چهارشنبه 21 فروردین 1392, 23:00 عصر
از اونجا که کلمات موجود در دیکشنری زیاد تغییر نمیکنن، بهتره کلاً از دیتابیس استفاده نکنید و با فایل کار کنید. مثلاً همه کلمات رو توی فایل بریزین و با یک جداکننده مثل , از هم تفکیک کنید و بعد بر اساس همون جداکننده بصورت آرایه در بیارین و بقیه کارهای جایگزینی رو انجام بدین.

Jason.Bourne
دوشنبه 02 اردیبهشت 1392, 02:08 صبح
در سایتهایی که Hit بالایی دارند، ذخیره اطلاعات در فایل مشکلی ایجاد نمی کنید؟ (از لحاظ سرعت منظورم هست)

matrixhassan
دوشنبه 02 اردیبهشت 1392, 08:24 صبح
http://barnamenevis.org/showthread.php?382700-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%AB%D8%A8%D8%AA-%D9%86%D8%B8%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D9%88-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%A8%D8%A7-%DA%A9%D9%84%D9%85%D8%A7%D8%AA-%D9%84%DB%8C%D8%B3%D8%AA-%D8%B3%DB%8C%D8%A7%D9%87&highlight=%D8%B3%DB%8C%D8%A7%D9%87

MMSHFE
دوشنبه 02 اردیبهشت 1392, 08:31 صبح
در سایتهایی که Hit بالایی دارند، ذخیره اطلاعات در فایل مشکلی ایجاد نمی کنید؟ (از لحاظ سرعت منظورم هست)
چون شما باید تمام اطلاعات کلمات رو داشته باشین و این اطلاعات هم تغییر آنچنان زیادی ندارن (Write)، اما در عوض زیاد خونده میشن (Read) استفاده از فایل و دسترسی ترتیبی اون، مشکلی ایجاد نمیکنه و سرعت کارش از دیتابیس بیشتره. بهرحال یادتون نره که دیتابیس هم روی دیسک ذخیره میشه منتها جاهایی که بخوایم دسترسی تصادفی یا جستجو و... داشته باشیم، استفاده از دیتابیس بهتره اما اینجا، چون همه اطلاعات رو لازم دارم و ترتیبش هم مهم نیست، همون فایل بهتره.