تفکیک حروف یک کلمه فارسی ؟

fahimehf

Member
باسلام
میخوام با انتخاب یک حرف از الفبای فارسی ، تمام کلماتی که با اون حرف شروع شدند رو نمایش بده ؟
البته با دستور زیر هم جواب نمیده !
PHP:
$sub=substr($test,0,1);
 

I.NoBody

Active Member
کد اسکی رو بگیر و بر اساس اون بررسی کن
کد:
<?php
$str[0]="ناسیلباتلسبانسبتن";
$str[1]="نتلاتلاتذ";
$str[2]="ناسیلباتلسبانسبتن";
$str[3]="البلاباب";

$ch="ن";
$ord=ord($ch);

for($i=0;$i<sizeof($str);$i++){
	if(ord($str[$i][0])==$ord)
		echo $str[$i]."<br>\n";
}

?>
 

fahimehf

Member
درباره بعضی حروف کار نمی کنه مثلا اگر بجای کد بالا از کد پایین استفاده کنم دو کلمه رو به من نشون میده درصورتیکه باید یک کلمه رو نشون بده !

PHP:
<?php
$str[0]="ناسیلباتلسبانسبتن";
$str[1]="نتلاتلاتذ";
$str[2]="زاتلتلللللل";
$str[3]="البلاباب";

$ch="ز";
$ord=ord($ch);

for($i=0;$i<sizeof($str);$i++){
	if(ord($str[$i][0])==$ord)
		echo " ".$str[$i]."<br>\n";
}

?>
برای رفع این مشکل باید چکار کرد؟
 
آخرین ویرایش:

I.NoBody

Active Member
ببین می تونی با توابع encoding و converting کار کنی ببینی با کدومش راحتتری و مشکلی نداری.
مثل utf8_encode ، unicode_encode و یا حتی md5
البته باید با توجه به ورژن phpت از اینا استفاده کنی.
من پیشنهادم md5 هست.
ممکنه بهینه نباشه ولی مطمئنه
 

fahimehf

Member
با تشکر از راهنماییتون
لطفا درمورد روشهایی که گفتید توضیح مختصری بدید که کلا کارشون چیه یا هرتوضیحی که خودتون میدونید؟
من یه مقاله درباره md5 توی iranphp پیدا کردم اما زیاد ازش سردر نیاوردم !
شاید بخاطر اینه که اصلا با این مقولات آشنایی قبلی نداشتم .
 

I.NoBody

Active Member
ببین همون کاری رو که من توی اون مثال با تابع ord کردم، با یه تابع دیگه انجام بده.
2،3 تا تابع رو من اسم بردم ولی نمی دونم که به مشکل بر بخوری یا نه.
خودت تستش کن.
در مورد اینکه هر کدوم چی کار می کنن، می تونی توی php Manual مطالعه کنی.
البته بهتره این کدو امتحان کنی ببینی مشکل داره یا نه؟
کد:
<?php 
$str[0]="ناسیلباتلسبانسبتن"; 
$str[1]="نتلاتلاتذ"; 
$str[2]="زاتلتلللللل"; 
$str[3]="البلاباب"; 

$ch="ز"; 

for($i=0;$i<sizeof($str);$i++){ 
    if($str[$i][0].$str[$i][1]==$ch) 
        echo " ".$str[$i]."<br>\n"; 
} 

?>
البته توی این کد حتماً باید رشته مورد نظرت با یه کاراکتر فارسی شروع شده باشه. نه عدد، نه علامت و نه حرف انگلیسی
 

fahimehf

Member
با تابع encoding کار کردم و درست جواب داد .
قطعه کدی هم که گذاشتید درست کار میکنه .
باز هم ممنون
 

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

بالا