ayoubsys
چهارشنبه 19 اسفند 1394, 06:23 صبح
سلام و عرض وقت بخیر
برخی اوقات نیاز هست که از اطلاعاتی که کاربر ثبت میکنه برخی کلمات رو حذف کنیم.(مثلا در بخش کامنت و حذف کلمات مس-تهج-ن)
که از str_replace کمک میگیریم و بعنوان مثال کلمه reza رو حذف میکنیم :
<?php
$input = "alireza";
$input = str_replace("reza", "", $input);
echo $input;
?>
خب الان اگر کاربر کلمه رضا رو بصورت Reza یا rEzA بنویسه از فیلتر رد میشه. پس از strtolower یا strtoupper کمک میگیریم که این مشکل نیز حل شود :
<?php
$input = "alireza";
$input = strtolower(($input);
$input = str_replace("reza", "", $input);
echo $input;
?>
اما باز هنوز یه راه گریز دیگه هست که کاربر اینبار مثلا رضا رو RErezaZA یا reREZAza بنویسه تنها reza وسط حذف شده و مجدد در خروجی یک reza به نمایش داده خواهد شد.
که جهت این کار هم میشه (کمترین کار) بجای جایگزین کلمه مورد نظر با "" از "-" استفاده کنیم ، که حداقل در خروجی چنین چیزی رو داشته باشیم :
re-za
$input = str_replace("reza", "-", $input);
البته ممکن است تعداد تکرار این کلمات مشخص نباشند :
REreREZAzaZA
خب سوالاتی که از دوستان دارم :
1- در بالا از strtolower کمک گرفتیم. که باعث میشه تمامی حروف انگلیسی ما کوچک چاپ بشوند. ایا راهی هست این مورد رو رفع کرد؟ (که مثلا بعد از حذف کلمات خاص ، بزرگ و کوچیکی حروف اطلاعات وارد شده به قبل برگردد.)
2- جهت حذف موارد مثل reREZAza ، از چه روشی استفاده کنیم که موثر واقع شود؟
تشکر .
برخی اوقات نیاز هست که از اطلاعاتی که کاربر ثبت میکنه برخی کلمات رو حذف کنیم.(مثلا در بخش کامنت و حذف کلمات مس-تهج-ن)
که از str_replace کمک میگیریم و بعنوان مثال کلمه reza رو حذف میکنیم :
<?php
$input = "alireza";
$input = str_replace("reza", "", $input);
echo $input;
?>
خب الان اگر کاربر کلمه رضا رو بصورت Reza یا rEzA بنویسه از فیلتر رد میشه. پس از strtolower یا strtoupper کمک میگیریم که این مشکل نیز حل شود :
<?php
$input = "alireza";
$input = strtolower(($input);
$input = str_replace("reza", "", $input);
echo $input;
?>
اما باز هنوز یه راه گریز دیگه هست که کاربر اینبار مثلا رضا رو RErezaZA یا reREZAza بنویسه تنها reza وسط حذف شده و مجدد در خروجی یک reza به نمایش داده خواهد شد.
که جهت این کار هم میشه (کمترین کار) بجای جایگزین کلمه مورد نظر با "" از "-" استفاده کنیم ، که حداقل در خروجی چنین چیزی رو داشته باشیم :
re-za
$input = str_replace("reza", "-", $input);
البته ممکن است تعداد تکرار این کلمات مشخص نباشند :
REreREZAzaZA
خب سوالاتی که از دوستان دارم :
1- در بالا از strtolower کمک گرفتیم. که باعث میشه تمامی حروف انگلیسی ما کوچک چاپ بشوند. ایا راهی هست این مورد رو رفع کرد؟ (که مثلا بعد از حذف کلمات خاص ، بزرگ و کوچیکی حروف اطلاعات وارد شده به قبل برگردد.)
2- جهت حذف موارد مثل reREZAza ، از چه روشی استفاده کنیم که موثر واقع شود؟
تشکر .