پ ژ و اعداد فارسی در یک سایت فارسی

abbasjoon

Member
سلام بچه ها. من بر روی کامپیوتر خودم بک اسلاش حرف پ و شیفت + ز حرف ژ را نمایش می ده. ولی جای دیگه دیدم که ~ حرف پ و بک اسلاش حرف ژ . این نا هماهنگی ها بر روی محتوای سایت وقتی در بروزر های مختلف به نمایش در بیاد تاثیر گذاره ؟ اگه هست چه جوری میشه رفعش کرد. از طرفی بر روی اعداد فارسی هم این مشکل هست بر روی کامپیوتر دیگه اعداد فارسی به صورت لاتین نمایش داده می شن. لطفا راهنماییم کنید
 

milads

Banned
. این نا هماهنگی ها بر روی محتوای سایت وقتی در بروزر های مختلف به نمایش در بیاد تاثیر گذاره ؟
نه جناب تاثیری نداره .
از طرفی بر روی اعداد فارسی هم این مشکل هست بر روی کامپیوتر دیگه اعداد فارسی به صورت لاتین نمایش داده می ش
مشکل عدد فارسی هم مشکلیه که همه دارن .
 

abbasjoon

Member
ولی این سایت مشکل عدد فارسی نداره . همه درست فارسی به نمایش در اومدند. چه جوری این مشکل رفع کرده؟
 

tabib_m

Member
نخیر
این سایت هم دقیقا مثل سایت های دیگه س

مسئله اینجاس که مرورگری مثل IE با توجه به direction=rtl کاراکترهای اعداد رو به صورت فارسی نشون میده.
اما در مرورگری مثل Firefox این عمل انجام نمیشه.

برای این که بتونی صرفا اعداد فارسی رو نمایش بدی، (یعنی دقیقا کاراکتر مربوطه رو اشاره کنی) میتونی از این عبارات استفاده کنی (ولی بدون فاصله های بینشون) :
کد:
& #1776;
& #1777;
& #1778;
& #1779;
& #1780;
& #1781;
& #1782;
& #1783;
& #1784;
& #1785;

اگر توی php کار میکنی، میتونی از این تابعی که نوشتم هم استفاده کنی.
تابع بدی نیست، گاهی به درد میخوره:
PHP:
function intEn2Fa($int){
	$search=array("0","1","2","3","4","5","6","7","8","9");
	$replace=array("& #1776;","& #1777;","& #1778;","& #1779;","& #1780;","& #1781;","& #1782;","& #1783;","& #1784;","& #1785;");
	
	for($a=0;$a<strlen($int);$a++){
		$theChr=$int[$a];
		if(in_array($theChr,$search) and $int[$a-2].$int[$a-1]!="&#" and $int[$a-3].$int[$a-2]!="&#" and $int[$a-4].$int[$a-3]!="&#" and $int[$a-5].$int[$a-4]!="&#"){
			$int2.=$replace[$theChr];
		}else{
			$int2.=$theChr;
		}
	}
	return $int2;
}
باز هم لازم به ذکر است که توی عبارات مذکور، باید فاصله اضافی بین کاراکتر & و # رو بردارید...

خوشحال میشم هر کسی میتونی بهینه ش کنه و اینجا قرار بده
یک مقداری قدیمیه، ولی کار میکنه :)

موفق باشید.
 
آخرین ویرایش:

iroweb

Member
کار طبیب بهترین راهه ولی یک کمی اومده تابع Php رو پیچیده کرده . من اینو پیشنهاد میدم :



PHP:
function NumFarsi($int) {//By Sasan Nobakht
	$search=array("0","1","2","3","4","5","6","7","8","9");
	$replace=array("& #1776;","& #1777;","& #1778;","& #1779;","& #1780;","& #1781;","& #1782;","& #1783;","& #1784;","& #1785;");
	$int = str_replace($search, $replace, $int);
	return $int;
}
 
آخرین ویرایش:

jhoseini

Member
کار طبیب بهترین راهه ولی یک کمی اومده تابع Php رو پیچیده کرده . من اینو پیشنهاد میدم :



PHP:
function NumFarsi($int) {//By Sasan Nobakht
	$search=array("0","1","2","3","4","5","6","7","8","9");
	$replace=array("& #1776;","& #1777;","& #1778;","& #1779;","& #1780;","& #1781;","& #1782;","& #1783;","& #1784;","& #1785;");
	$int = str_replace($search, $replace, $int);
	return $int;
}

خوب باید چک بشه که خدای نکرده عددی که میخایم تعمیر کنیم، از یه کارکتر تعمیری مثل & #1779; نباشه

بابا همون کار میکنه دیگه، نیاز به تابع دیگه ای نبود

----------------------------------------------------------------------
یکی بیاد این پاسخ سریع رو یه سیخ بده بزرگ کنه !!
2mo5pow.gif
 
آخرین ویرایش:

iroweb

Member
خوب باید چک بشه که خدای نکرده عددی که میخایم تعمیر کنیم، از یه کارکتر تعمیری مثل & #1779; نباشه
البته رو این تابع شما هم اگه یه خط بالاش اضافه شه حله:

PHP:
function NumFarsi($int) {//By Sasan Nobakht
	if(!is_numeric($int))return $int; // by jhoseini :p
	$search=array("0","1","2","3","4","5","6","7","8","9");
	$replace=array("& #1776;","& #1777;","& #1778;","& #1779;","& #1780;","& #1781;","& #1782;","& #1783;","& #1784;","& #1785;");
	$int = str_replace($search, $replace, $int);
	return $int;
}

بابا همون کار میکنه دیگه، نیاز به تابع دیگه ای نبود

----------------------------------------------------------------------
یکی بیاد این پاسخ سریع رو یه سیخ بده بزرگ کنه !!
2mo5pow.gif
به نظرم این خط مشکوکه :

if(!is_numeric($int))return $int; // by jhoseini :p

نیازی نیست که متن ما همش عدد باشه . اونی که من نوشتم خودش تمام متن رو میگرده هرچی عدد باشه عوض میکنه . ولی اینجوری شما خیلی تابع رو محدود کردید .
 

tabib_m

Member
ممنونم اقا محسن
خواهش میکنم.
استفاده از کلید تشکر، کافیه. زدن پست اضافه صرفا برای تشکر، خلاف قوانین سایت هست...


--------------------


خوب باید چک بشه که خدای نکرده عددی که میخایم تعمیر کنیم، از یه کارکتر تعمیری مثل & #1779; نباشه
خوب پس بسم الله ... :)

--------------------

نیازی نیست که متن ما همش عدد باشه . اونی که من نوشتم خودش تمام متن رو میگرده هرچی عدد باشه عوض میکنه . ولی اینجوری شما خیلی تابع رو محدود کردید .
ربطی نداره
تابعی که من نوشتم، با رشته ها کار میکنه و هر چی عدد داخلش هست رو تبدیل میکنه.

قبلا کد شما رو هم نوشته بودم، اما مشکل داره...
اگر خودت یک بار تستش کنی متوجه میشی...

امیدوارم بعد از تست، متوجه علت مشکلش هم بشی :)


موفق باشید.
 
آخرین ویرایش:

jhoseini

Member
خواهش میکنم.
استفاده از کلید تشکر، کافیه. زدن پست اضافه صرفا برای تشکر، خلاف قوانین سایت هست...
حلا شما 100 بار بگو، کی گوش میده
gigglesmile.gif

(فقط شوخی، میدونم بابا پست اضافی اه :d)
 

iroweb

Member
نقل قول:
نیازی نیست که متن ما همش عدد باشه . اونی که من نوشتم خودش تمام متن رو میگرده هرچی عدد باشه عوض میکنه . ولی اینجوری شما خیلی تابع رو محدود کردید .

ربطی نداره
تابعی که من نوشتم، با رشته ها کار میکنه و هر چی عدد داخلش هست رو تبدیل میکنه.

قبلا کد شما رو هم نوشته بودم، اما مشکل داره...
اگر خودت یک بار تستش کنی متوجه میشی...

امیدوارم بعد از تست، متوجه علت مشکلش هم بشی


طبیب جون این مال شما نبود که . مال حسینی بود .
 

جدیدترین ارسال ها

بالا