ghiravani
جمعه 22 مهر 1390, 00:40 صبح
سلام.خسته نباشید.برای مثال یه رشته داریم به این صورت: "سلام"
میخوام این رشته رو داخل یه متغیر بریزم و هر کاراکتر رو با کمک یه خانه از آرایه نمایش بدم.اما نمیشه.برای کارکترهای انگلیسی میشه اما فارسی نه.
مثلا برای کارکتر های انگلیسی میشه از که زیر استفاده کرد:
<?php
$str = "ABCD";
echo $str[0]."<br/>";
echo $str[1]."<br/>";
echo $str[2]."<br/>";
echo $str[3];
?>
نتیجه میشه:
A
B
C
D
اما اگر همین کد بالا رو با متغیر فارسی داشته باشیم نتیجه میشه:
<?php
$str = "سلام";
echo $str[0]."<br/>";
echo $str[1]."<br/>";
echo $str[2]."<br/>";
echo $str[3];
?>
�
�
�
�
جالب اینجاست که اگر رشته ما مثلا "سلام" که 4 کارکتر داره رو با تابع strlen چک کنیم نتیحه 8 رو میده و برای اینکه هر کارکتر فارسی رو بشه جدا کرد باید این روش رو استفاده کرد:
<?php
$str = "سلام";
echo $str[0].$str[1]."<br/>";
echo $str[2].$str[3]."<br/>";
echo $str[4].$str[5]."<br/>";
echo $str[6].$str[7];
?>
نتیجه میشه:
س
ل
ا
م
اما مشکل زمانی هست که رشته ما دارای کارکتر های فارسی و انگلیسی هست.مثلا "سلام mamnoon خوبم"
دوستان بهترین راه حل برای این مشکل چیه؟؟؟ لطفا راهنماییم کنید که کارم خیـــــــــــــــلی گیره
ممنون
میخوام این رشته رو داخل یه متغیر بریزم و هر کاراکتر رو با کمک یه خانه از آرایه نمایش بدم.اما نمیشه.برای کارکترهای انگلیسی میشه اما فارسی نه.
مثلا برای کارکتر های انگلیسی میشه از که زیر استفاده کرد:
<?php
$str = "ABCD";
echo $str[0]."<br/>";
echo $str[1]."<br/>";
echo $str[2]."<br/>";
echo $str[3];
?>
نتیجه میشه:
A
B
C
D
اما اگر همین کد بالا رو با متغیر فارسی داشته باشیم نتیجه میشه:
<?php
$str = "سلام";
echo $str[0]."<br/>";
echo $str[1]."<br/>";
echo $str[2]."<br/>";
echo $str[3];
?>
�
�
�
�
جالب اینجاست که اگر رشته ما مثلا "سلام" که 4 کارکتر داره رو با تابع strlen چک کنیم نتیحه 8 رو میده و برای اینکه هر کارکتر فارسی رو بشه جدا کرد باید این روش رو استفاده کرد:
<?php
$str = "سلام";
echo $str[0].$str[1]."<br/>";
echo $str[2].$str[3]."<br/>";
echo $str[4].$str[5]."<br/>";
echo $str[6].$str[7];
?>
نتیجه میشه:
س
ل
ا
م
اما مشکل زمانی هست که رشته ما دارای کارکتر های فارسی و انگلیسی هست.مثلا "سلام mamnoon خوبم"
دوستان بهترین راه حل برای این مشکل چیه؟؟؟ لطفا راهنماییم کنید که کارم خیـــــــــــــــلی گیره
ممنون