PDA

View Full Version : تابع گرفتن یک کاراکتر از یک رشته



esteftaats
یک شنبه 01 تیر 1393, 22:03 عصر
سلام دوستان.

برای نوشتن یک برنامه ای به تابعی نیاز دارم که هر دفعه یک کاراکتر از رشته ای رو بگیره. یعنی بگیره و جدا کنه

یا دو تا تابع می خوام که یکی یک کاراکتر رو بگیره و اون یکی یک کاراکتر رو حذف کنه.

ممنون

MMSHFE
یک شنبه 01 تیر 1393, 22:26 عصر
خوب از آخر جدا کنه، از اول، اندیس بگیره؟ یکم بیشتر توضیح بدین. ضمناً این چیزی که میخواین رو به راحتی با substr و mb_substr میتونید انجام بدین.

esteftaats
یک شنبه 01 تیر 1393, 23:48 عصر
خوب از آخر جدا کنه، از اول، اندیس بگیره؟ یکم بیشتر توضیح بدین. ضمناً این چیزی که میخواین رو به راحتی با substr و mb_substr میتونید انجام بدین.

فرض کنین یه رشته داریم مثلا example

می خوام یه حلقه بذارم که هر دفعه یک کاراکتر رو بگیره.
یعنی یک کاراکتر رو از رشته مورد نظر جدا کنه تا موقعی که اون رشته تموم بشه.
به عبارتی می خوام روی تک تک هر کاراکتر یک رشته محاسباتی رو انجام بدم.

برای همین اولا یه تابع می خوام که :

1 - هر بار بشه کاراکتر اول یک رشته رو باهاش گرفت.
2 - بعد از این کار کاراکتر مورد نظر رو از رشته حذف کرد
3 - حالا به مرحله 1 یا همون 2 خط بالاتر بر می کردیم (حلقه)

با substr میشه یک کاراکتر رو از یک رشته جدا کرد اما مشکل من اینه که برای گرفتن یک کاراکتر از یک رشته باید چکار کرد؟

mojtaba.7230
یک شنبه 01 تیر 1393, 23:58 عصر
اگه منظور شما درست متوجه شده باشم فکر میکنم باید یه شرط بزاری و کاراکتر مقایسه کنی بعد اگه کاراکتر مورد نظر نبود داخل یه متغیر دیگه بریزید..



$text = 'example';
$len_text = strlen( $text );
for( $i=0 ; $i <= $len_text ; ++$i){
$char = substr( $text , $i , 1 );
if( $char != 'm' ){
@ $final_text .= $char;
}
}
echo $text;
//example
echo $final_text;
//exaple

MMSHFE
دوشنبه 02 تیر 1393, 08:47 صبح
منظورتون رو باز از تفاوت بین «جدا کردن یک کارکتر از یک رشته» و «گرفتن یک کارکتر از یک رشته» متوجه نشدم ولی بهرصورت، شما با دستور زیر:

mb_substr($str, 0, 1, 'utf-8')
میتونید اولین کارکتر یک رشته رو بدست بیارین و با دستور زیر:

$str = mb_substr($str, 1, mb_strlen($str, 'utf-8'), 'utf-8');
هم میتونید بقیه رشته (از کارکتر دوم به بعد) رو دوباره توی خود رشته ذخیره کنید.