سلام
من این کد رو استفاده می کنم :
preg_replace('#[^A-Za-z-0-9]#i','',$_GET['id']);
این برای زبان انگلیسی خوبه
اما اگه مقدار دریافتی فارسی باشه دیگه جواب نمیده
چه کنم ؟
ممنون
سلام
من این کد رو استفاده می کنم :
preg_replace('#[^A-Za-z-0-9]#i','',$_GET['id']);
این برای زبان انگلیسی خوبه
اما اگه مقدار دریافتی فارسی باشه دیگه جواب نمیده
چه کنم ؟
ممنون
Regular Expression قابلیت چک کردن کدهای یونیکد رو داره و برای پیدا کردن کاراکترهای فارسی باید از کد یونیکدشون استفاده شه و البته میشه براش بازه هم تعریف کرد. نمونه:
$str = 'aaaسلامbbbسلامcccسلامddd';
$a = preg_replace('@[^\x{0600}-\x{06FF}]@u', '-', $str);
echo $a; // ---سلام---سلام---سلام---
این بازه که من استفاده کردم Arabic بود. فارسی دقیق توی چند تا بازه است! توی این صفحه میتونید بازهها رو ببینید و بهترین بازه رو استفاده کنید: Unicode Character Ranges
ممنون
اما تو این لیست برای زبان فارسی چیزی نبود
اون Arabic شامل همهی کاراکترهای اون مدلیه یعنی گچ پژ هم توش هست و در واقع فارسی کامل توش هست اما برای این میگم فارسی تو چند تا بازه است چون مثلا تو بعضی بازههای دیگه هم حروف فارسی پیدا میشه و تو همون بازه کلی کاراکتر هست که اصلا فارسی نیست و باید از بازه حذف شه ولی در حالت کلی همین بازهای که تو مثال من بود کافیه...
آخرین ویرایش به وسیله امیـرحسین : چهارشنبه 21 دی 1390 در 13:56 عصر
میشه همین کد خودتون رو با کد من ترکیب کنید بدید ؟
preg_replace('#[^A-Za-z-0-9]#i','',$_GET['id']);
ممنون
داداش یه کمکی کن
ممنون
من تلاش کردم نتونستم
سلام
از این کد استفاده کن من قبلا کلی دنبالش گشتم ولی بلاخره خودم درستش کردم
ereg_replace("[^_؟?A-Za-z0-9 \ا\ب\پ\ت\ث\ج\چ\ح\خ\د\ذ\ر\ز\ژ\س\ش\ \ض\ط\ظ\ع\غ\ف\ق\ک\گ\ل\م\ن\و\ه\ی\ك\ آ\ي\ئ\_\]", "", $str);
اگر بخوای انگلیسی جایگزین بشه از توی تابع حذفشون کن و بر عکسکد HTML:ereg_replace("[^_؟?A-Za-z0-9 \ا\ب\پ\ت\ث\ج\چ\ح\خ\د\ذ\ر\ز\ژ\س\ش\ص\ض\ط\ظ\ع\غ\ف\ق\ک\گ\ل\م\ن\و\ه\ی\ك\آ\ي\ئ\_\]", "", $str);
دوستان منم فکر کنم مشکلی مشابه همین سوال رو دارم. تابع truncate رو می خوام استفاده کنم اما توی شمارش حروف و کاراکترهای فارسی مشکل داره و درست عدد رو برنمیگردونه. فکر میکنم هر کاراکتر فارسی رو ۳-۴ تا میشماره!!؟ ولی واسه انگلیسی درسته.
ممنون میشم اگه راهی به ذهنتون میرسه بگین. مد کدنویس نیستم و اطلاعات زیادی از php ندارم.