اما اخیرا بعد از به روز رسانی تابع به نسخه جدید حروف انگلیسی به صورت پیش فرض به حروف انگلیسی تبدیل شده است .
این تغییرات باعث میشه که اطلاعات ورود به دیتابیس هم تغییر پیدا کنه و با انکدینگ متفاوتی ارسال بشه
اما مشکل دیگری که ما به آن برخورد کرده بودیم عملیات ریاضی روی خروجی این تابع بود
مثلا در صفحه اصلی سایت تراکتور اف سی www.tractorfc.com قسمت تراکتور در چنین روزی تابع jdate اطلاعات مربوط به یک سال پیش را فراخوانی میکرد. ولی چون نمیتوانست عملیات ریاضی روی خروجی ارقام فارسی انجام دهد موردی نمایش داده نمیشد .
اما راه حل این مشکل چیست؟
در سایت اصلی توضیحی در این رابطه داده شده است به این صورت :
تابع tr_num
دارای 3 پارامتر که فقط پارامتر اوّل آن الزامی بوده و بقیه ی پارامترها اختیاری هستند. ورودی پارامتر اوّل این تابع ، یک متن یا عبارت یا شماره یا مخلوطی از این ها می تواند باشد و خروجی هم همان ورودی است ، فقط تمام اعداد موجود در آن عبارت ، طبق انتخاب خودمان ، از فارسی (عربی) به انگلیسی (لاتین) یا بالعکس ، تبدیل خواهند شد. اگر بخواهید یک عدد را در توابع ریاضی پی اچ پی استفاده نموده و محاسباتی را روی آن انجام دهید ، حتّی یک ضرب یا جمع ساده ، حتماً باید از اعداد انگلیسی استفاده کنید. امّا برای استفاده در قالب و نمایش در صفحات سایت ، اعداد فارسی خیلی بهتر خواهند بود. این تابع به شما کمک می کند تا اعداد را ترجمه کنید.
البتّه این خاصیت در پارامتر پنجم تابع jdate نیز وجود دارد و هرکجا از تابع jdate استفاده کردید ، می توانید مستقیماً و بدون استفاده از تابع tr_num ، زبان اعداد خروجی را تنظیم نمایید.
string tr_num ( string $str [, string $mod = "en" [, string $mf = "٫" ]] )
tr_num( $str , $mod , $mf );
پارامترهای تابع tr_num
str$ : پارامتر اوّل ، متن یا عبارت یا عدد یا مخلوطی از این ها. زبان اعداد ورودی اهمّیّتی ندارد.
mod$ : پارامتر دوم ، یک پارامتر اختیاری بوده و مقدار پیشفرض آن 'en' می باشد. یعنی اگر این پارامتر را وارد نکنید یا خالی '' بگذارید ، اعداد به انگلیسی تبدیل خواهند شد. و اگر می خواهید اعداد به فارسی تبدیل شوند ، این پارامتر را 'fa' وارد کنید. طبق معمول ، به بزرگی و کوچکی حروف توجّه داشته باشید ، یعنی 'fa' حتماً با حروف کوچک وارد شود.
mf$ : پارامتر سوم ، یک پارامتر اختیاری بوده و مقدار پیشفرض آن '٫' می باشد. (٫) کاراکتر ممیّز فارسی (و عربی) است. این پارامتر ، مشخّص می کند که در پارامتر اوّل و خروجی تابع ، چه کاراکتری به عنوان ممیّز فارسی در نظر گرفته شود. مثلاً اگر قصد انگلیسی کردن اعداد را دارید و در ورودی از کاراکتر / به عنوان ممیّز جداساز اعشار استفاده کرده اید یا اگر قصد فارسی کردن اعداد را دارید و مایلید در خروجی ، کاراکتر / به جای ممیّز نوشته شود ، مقدار این پارامتر را '/' قرار دهید. البتّه حالت استاندارد ممیّز فارسی ، همان کاراکتر '٫' U+066B می باشد و در صورت وارد نکردن یا خالی '' گذاشتن این پارامتر ، '٫' اعمال می گردد. توجّه داشته باشید که مقدار این پارامتر فقط به عنوان ممیّز اعداد فارسی حساب می شود و ممیّز اعداد انگلیسی ، همان کاراکتر '.' یعنی نقطه می باشد. پس در صورت وارد کردن '.' نقطه برای این پارامتر ، ممیّز اعداد فارسی و انگلیسی را یکسان تعریف نموده اید.
tr_num('۵ 5 abc ا ب پ');// out: 55 abc ا ب پ
tr_num('۵5tت','fa');// out: ۵۵ abc ا ب پ
tr_num('18.25','fa');// out: ۱۸٫۲۵
tr_num('18.25','fa','/');// out: ۱۸/۲۵
tr_num('18.25','fa','.');// out: ۱۸.۲۵
tr_num('۱۸٫۲۵');// out: 18.25
tr_num('۱۸/۲۵');// out: 18/25
من به صورت خلاصه توضیح میدم اگر شما قبلا تابع رو به صورت معمولی فراخوانی میکردید مثلا به صورت :
jdate('Y')
باید سه پارامتر بعدی را که اختیاری است خالی فرستاد تا به صورت پیش فرض ارسال شود.
و پارامتر پنجم با مقدار en ارسال کرد تا خروجی رقم انگلیسی باشد تا عملیات ریاضی به راحتی انجام شود
به این صورت :
jdate('Y','','','','en');
هیچ نظری موجود نیست:
ارسال یک نظر