سلام و خسته نباشید.
در صورت انتخاب تبدیل اعداد به فارسی، یک مشکل کوچیک وجود داره و اون اینه که وقتی به عنوان مثال در متن پست خود کلمات انگلیسی نظیر J2EE و یا web2.0 استفاده میکنیم، این عدد ها نباید به فارسی تبدیل شوند.
ضمنا بهتره در هنگام تبدیل اعداد اعشاری به جای نقطه از کاراکتر «/» استفاده بشه.
من برای رفع مشکلات فوق تغییرات مختصری در دو تابع farsi_num و convertToFarsi دادم. کدش رو اینجا میگزارم تا در صورتی که صلاح دونستید این تغییر رو در ورژن های آتی اعمال کنید.
function convertToFarsi($matches) {
$out = '';
if (isset($matches[1])) {
return str_replace(
array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."),
array("۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "/"),
$matches[1]);
}
return $matches[0];
}
function farsi_num($num,$fake = null,$fake2=null) {
return preg_replace_callback('/(?:&#\d{2,4};)|(\d+[\.\d]*)|(?:[a-z][\x21-\x3B\x3D-\x7F]*)|<\s*[^>]+>/i', 'convertToFarsi', $num);
}
با تشکر