View Full Version : حرفه ای: یک تابع php برای تمیز کردن متن فارسی
kabootar_y
یک شنبه 23 شهریور 1393, 14:18 عصر
سلام
دوستان کسی تابعی سراغ داره که بشه متن فارسی که قراره در url قرار بگیره رو باهاش تمیز کرد.
یعنی متنی مثل متن زیر رو بهش بدیم:
لاریجانی:خطرکندروها کمتر از تندروها نیست/ ائتلاف غرب و اعراب در برخورد با داعش،عقلانیت لازم را ندارد
بعد متن زیر رو تحویل بده:
لاریجانی-خطرکندروها-کمتر-از-تندروها-نیست-ائتلاف-غرب-و-اعراب-در-برخورد-با-داعش-عقلانیت-لازم-ندارد
می خوام متن خروجی رو بذارم داخل آدرس مثل:
http://domain.com/news/لاریجانی-خطرکندروها-کمتر-از-تندروها-نیست-ائتلاف-غرب-و-اعراب-در-برخورد-با-داعش-عقلانیت-لازم-ندارد
اگر کسی function نوشته که این کار رو میکنه و با فارسی مشکل نداره محبت کنید.
arkia
یک شنبه 23 شهریور 1393, 15:11 عصر
کاراکتر فاصله رو با خط تیره جایگزین کنید،
$newtext=str_replace(' ','-',$text);
kabootar_y
یک شنبه 23 شهریور 1393, 16:01 عصر
کاراکتر فاصله رو با خط تیره جایگزین کنید،
$newtext=str_replace(' ','-',$text);
کاراکتر های نقطه, اسلش, سمی کالن, و ... رو چطور جایگزین کنم؟
به طور کلی می خوام حروف فارسی از "الف" تا "ی" و حروف انگلیسی ار "a" تا "z" و از "A" تا "Z" و اعداد از "0" تا "9" نمایش داده بشه. و هیچ کاراکتری غیر از اینها نباشه.
در ضمن بعضی وقتا تو تا کاراکتر "--" کنار هم قرار میگیرند. که نمی خوام این طوری باشه.
shahriyar3
یک شنبه 23 شهریور 1393, 17:28 عصر
برای برداشتن / از stripslashes میتونید استفاده کنید
Unique
یک شنبه 23 شهریور 1393, 21:37 عصر
توی یک Hvhdi کاراکتر هایی که میخوای حذف بشه را بده به str_replace و پارامتر دوم را '' بده. اما اگه میخوای بهترین حالت ممکن باشه و white list بدی و بقیه را حذف کنی باید با regex بدی ! من خیلی توی regex نویسی مهارت ندارم ولی بهترین انتخابه.
arkia
دوشنبه 24 شهریور 1393, 22:48 عصر
کاراکتر های نقطه, اسلش, سمی کالن, و ... رو چطور جایگزین کنم؟
کد او نا هم مثل همین کد ه دیگه باید جایگزین کنی با همین دستور با این تفاوت که برای حذف هر کاراکتری توسط این دستور باید با کوتیشن باز و بسته یا دابل کوتیشن باز و بسته جایگزین کنی
$newtext=str_replace(':','',$text);
به طور کلی می خوام حروف فارسی از "الف" تا "ی" و حروف انگلیسی ار "a" تا "z" و از "A" تا "Z" و اعداد از "0" تا "9" نمایش داده بشه. و هیچ کاراکتری غیر از اینها نباشه.
در ضمن بعضی وقتا تو تا کاراکتر "--" کنار هم قرار میگیرند. که نمی خوام این طوری باشه.
شما برای این کارا کد اسکی کاراکتر های مجاز خودت رو پیدا کن و هنگام استفاده از یک تابع عبور بده و توسط همین دستور فیلتر کن.
در ضمن بعضی وقتا تو تا کاراکتر "--" کنار هم قرار میگیرند. که نمی خوام این طوری باشه.
شما در آخر این دو تا کاراکتر رو با یک کاراکتر جایگزین کن یا با خالی جایگزین کن حذف بشه
$newtext=str_replace('--','-',$text);
arkia
دوشنبه 24 شهریور 1393, 22:53 عصر
توی یک Hvhdi کاراکتر هایی که میخوای حذف بشه را بده به str_replace و پارامتر دوم را '' بده. اما اگه میخوای بهترین حالت ممکن باشه و white list بدی و بقیه را حذف کنی باید با regex بدی ! من خیلی توی regex نویسی مهارت ندارم ولی بهترین انتخابه.
عبارات باقاعده کاراکتر های فارسی رو ساپورت نمیکنه
برای عدد
\d
برای حروف
\w
برای کاراکتر های غیر حروف و عدد
\W
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.