PDA

View Full Version : سوال: سوال : تبديل اعداد پارسی به اعداد اينگليسی (حل شد)



damoon.ladani
سه شنبه 27 فروردین 1392, 15:16 عصر
سلام
من دارم يه برنامه حساسبداری کوچيک برای خودم مينويسم
به مشکلی برخوردم ، ميخوام شماره کارت مشتری رو از اينترنت بانکم کپی کنم و تو فيلد مربوطه Paste
کنم ! يعنی ديگه خودم شماره کارت رو تايپ نکنم ! همينطور شماره ارجاع رو
ولی مشکلی که دارم اينه که وقتی کپی کنم اعداد پارسی هستند تو اينترنت بانک و من ميخوام به اينگليسی برگرده
و بعد اينکه به اينگليسی برگردوند 4 رقم 4 رقم بينشون فاصله بندازه ( جهت خوانايی بهتر برای خودم )
کسی ميتونه کمکی کنه ؟ نمونه کدی که اعداد پارسی رو به اعداد اينگليسی برگردونه يا بر عکس ؟

با تشکر .

colors
سه شنبه 27 فروردین 1392, 16:45 عصر
سلام

این کد اسپاگتیشه, یه دستی بهش بکش.

# Add Account Number
$nu = '1234932198766789';

$e_nu = array('1','2','3','4','5','6','7','8','9');
$p_nu = array('۱','۲','۳','۴','۵','۶','۷','۸','۹' );
$nu = str_replace($e_nu, $p_nu, $nu);

$final_nu = '';
$nu_s[] = mb_substr($nu,0,4,'utf-8');
$nu_s[] = mb_substr($nu,4,4,'utf-8');
$nu_s[] = mb_substr($nu,8,4,'utf-8');
$nu_s[] = mb_substr($nu,12,4,'utf-8');
$i = 0;
foreach($nu_s as $val){
if($i == 3){
$final_nu .= $val;
}
else{
$final_nu .= $val.',';
}

$i++;
}

echo $final_nu;
# out : ۱۲۳۴,۹۳۲۱,۹۸۷۶,۶۷۸۹

navid3d_69
سه شنبه 27 فروردین 1392, 17:09 عصر
شما چون از فونت فارسی استفاده کردید اینجوری شده می تونین برای اون قسمت هایی که می خواین فونت رو فقط یک فونت arial بزارید

damoon.ladani
چهارشنبه 28 فروردین 1392, 09:16 صبح
دوستان اين هم خوبه ، تست نکردم ولی به نظر منطقی مياد
بايد کار کنه با اين حساب مسئله حل شده است و من تايتل تاپيکم رو به حل شد تغئير ميدم
فقط بايد جای اعداد اينگليسی رو با پارسی عوض کنيد که اون چيزی باشه که من ميخوام



function intToFarsi($getInt){
$result = '';
for( $i ; $i < strlen($getInt) ; $i++ ){
switch( $getInt[$i] ){
case 0:
$result .= '٠';
break;

case 1:
$result .= '١';
break;

case 2:
$result .= '٢';
break;

case 3:
$result .= '٣';
break;

case 4:
$result .= '٤';
break;

case 5:
$result .= '٥';
break;

case 6:
$result .= '٦';
break;

case 7:
$result .= '٧';
break;

case 8:
$result .= '٨';
break;

case 9:
$result .= '٩';
break;
}
}
return $result;
unset($result);
}

MostafaEs3
چهارشنبه 28 فروردین 1392, 16:23 عصر
شما میتونید برای راحتی کار از str_replace استفاده کنید ... تابع زیر رو در کدهاتون قرار بدید و ازش استفاده کنید. در این تابع من اومدم ابتدا اعداد عربی مثل ٤ - ٥ - ٦ رو به اعداد فارسی تبدیل کردم و پس از اون تمامی اعداد فارسی رو به اعداد انگلیسی ...! موفق باشید



function ReplaceNumbers($String) {

/* (english) to (persian) */
$Number_English = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$Number_Persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');

/* (arabic) to (persian) */
$Number_Arabic = array('۰', '۱', '۲', '۳', '٤', '٥', '٦', '۷', '۸', '۹');
$Number_Persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');

$String = str_replace($Number_Arabic, $Number_Persian, $String);
$String = str_replace($Number_Persian, $Number_English, $String);

return $String;
}