کار با رشته ها در PHP

  • شروع کننده موضوع AHMAD
  • تاریخ شروع

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
سلام

از سری تاپیک های آموزش PHP ، در این تاپیک قصد داریم مبحث کار با رشته ها در زبان برنامه نویسی PHP را بررسی کنیم و توابع و نکات مهم مربوط به کار با رشته ها را همراه با مثال بیان کنیم.

نکات و مثال های مختلف به مرور به تاپیک اضافه می شوند. پس لطفا اگر به مبحث رشته ها در php علاقه دارید این صفحه را Bookmark کنید تا در آینده دسترسی ساده تری به آن داشته باشید.


رشته ها در زبان php با Single Quotation و یا Double Quotation تعریف می شوند. به عنوان مثال برای قرار دادن یک مقدار رشته ای در یک متغیر می توان به صورت زیر عمل کرد :

PHP:
$str1 = 'Stering with Single Quotation';
$str2 = "String with Double Quotation";

echo $str1;
echo $str2;

همانطور که دیدیم یک بار با استفاده از Single Quotation و بار دیگر با استفاده از Double Quotation ، دو رشته را در دو متغیر مختلف تعریف کردیم و سپس با استفاده از دستور echo آن ها را در خروجی چاپ کردیم.

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



.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 1 :

در رشته هایی که با استفاده از Double Quotation تعریف می شوند ، متغیرها تفسیر می شوند و مقادیر آن ها جایگزین نام متغیر ها می شوند اما در رشته هایی که توسط Single Quotation تعریف می شوند این اتفاق نمی افتد و هر مقداری که بین دو علامت ' ' قرار بگیرد عینا در خروجی چاپ می شود.

مثال :
PHP:
$first = 15;

echo "The first number is $first";     // The first number is 15

echo 'The first number is $first';     // The first number is $first
همانطور که در این مثال مشخص است ، در حالت دوم ، نام متغیر عینا در خروجی چاپ می شود اما در حالت اول متغیر تفسیر شده و مقدار 15 به جای آن چاپ می شود.


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 2 :

برای الحاق دو رشته به یکدیگر در زبان php باید از عملوندهای "." و یا "=." استفاده کنیم.

مثال :
PHP:
$str1 = "ab";
$str2 = "cd";

$result = $str1.$str2;
echo $result;     // abcd

/////////

$str1 .= "cd";
echo $str1;     // abcd

همانطور که در مثال بالا مشاهده می کنید ، با هر دو عملوند می توانیم دو رشته مختلف را به هم متصل کنیم.


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 3 :

هنگامی که از Double Quotation جهت تعریف رشته ها و استفاده از متغیرها در داخل رشته استفاده می کنیم ، بهتر است نام متغیر را داخل {} قرار دهیم. این کار دو دلیل دارد :

1 - تفکیک نام متغیر از کاراکترهای رشته
2 - خوانایی بهتر برنامه

مثال :
کد:
$first = 1;

echo "The $firstth is one";     // The is one

echo "The {$first}th is one";     // The 1th is one


همانطور که در مثال بالا می بینید ، در حالت اول مقدار متغیر در خروجی چاپ نمی شود زیرا نام متغیر ما first$ است و هنگامی که به th می چسبد ، به اشتباه firstth$ در نظر گرفته می شود که چنین متغیری در برنامه فوق تعریف نشده پس در خروجی مقدار آن تهی می باشد و مقداری نمایش داده نمی شود.

اما در حالت دوم به دلیل استفاده از {} تعیین می کنیم که نام متغیر ما چیست و مقدار آن در خروجی چاپ می شود.


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 4 :

در صورتی که بخواهیم از کاراکترهای کنترلی در رشته ها استفاده کنیم ، می بایست نحوه استفاده از آن در زبان php را بدانیم.

از مهمترین کاراکترهای کنترلی که در رشته ها به کار می روند می توان به موارد زیر اشاره کرد :

1 - خط جدید : n\

2 - Tab (تب) : t\

3 - Backslash (بک اسلش) : \\

4 - علامت $ : $\

5 - علامت Single Quote : '\

6 - علامت Double Quote : "\

7 - علامت } و یا { : {\ - }\


مثال :
PHP:
echo "My first \"String\"";   // My first "String"


تذکر 1 : هنگامی که رشته خود را با استفاده از Single Quotation تعریف می کنید نباید از "\ استفاده کنید و می بایست به جای آن از " (بدون Backslash) استفاده کنید.

تذکر 2 : هنگامی که رشته خود را با استفاده از Double Quotation تعریف می کنید نباید از '\ استفاده کنید و می بایست به جای آن از ' (بدون Backslash) استفاده کنید.


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 5 :

برای دسترسی به کاراکتر n ام از یک رشته می توانیم از یکی از دو عملگر [n] و یا {n} استفاده کنیم.

مثال :
PHP:
$str = "Text";
echo $str[2];   // x
echo $str{3};   // t


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 6 :

تعریف رشته های طولانی با استفاده از روش heredoc :

در زبان برنامه نویسی php در صورتی که بخواهیم یک رشته طولانی ایجاد کنیم می توانیم از روش heredoc استفاده کنیم. برای توضیح بیشتر در مورد این روش لطفا به مثال زیر توجه کنید :
PHP:
$longstr = <<<EOS
This is long string
"This is long string"
'This is long string'
EOS;
echo $longstr;
/*
Output :
This is long string
"This is long string"
'This is long string'
*/

همانطور که مشاهده می کنید برای تعریف رشته به روش heredoc ، می بایست یک شناسه تعریف کنیم که در این مثال EOS نام دارد. شناسه را با استفاده از عملگر >>>= به متغیر نسبت می دهیم و در پایان پس از اتمام رشته مجددا همین شناسه را در ابتدای خط جدید قرار داده و علامت ; پس از آن قرار می دهیم.


نکات تعریف رشته به روش heredoc :

1 - اولین کاراکتر بعد از نام شناسه در ابتدای رشته (در مثال بالا Enter زده شده است) و آخرین کاراکتر قبل از نام شناسه در انتهای رشته (در مثال بالا Enter زده شده است) ، از رشته حذف می شوند.

2 - شناسه پایانی (EOS خط آخر) حتما می بایست در ابتدای خط باشد و هیچ کاراکتری قبل از آن در آن خط وجود نداشته باشد.

3 - قرار دادن علامت ; پس از شناسه پایانی اختیاری است.

4 - در صورتی که شناسه ابتدایی رشته (خط اول) داخل Single Quotation قرار گیرد ، متغیرها تفسیر نمی شوند و تمام موارد تایپ شده عینا در خروجی چاپ می شوند (مانند تعریف رشته ها با استفاده از Single Quotation به صورت ساده)


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 7 :

با استفاده از تابع ()strlen می توان تعداد کاراکترهای یک رشته را بدست آورد.

مثال :
PHP:
$str = "Text";

for ($i=0; $i<strlen($str); $i++) {
echo "The {$i}th character is {$str{$i}}<br />";
}

// The 0th character is T
// The 1th character is e
// The 2th character is x
// The 3th character is t

در مثال بالا با استفاده از تابع ()strlen ، حلقه ای ایجاد کردیم که به تعداد کاراکترهای متغیر str$ اجرا شده و هر بار جایگاه کاراکتر در رشته را به همراه نام کاراکتر چاپ می کند.


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 8 :

با استفاده از تابع ()strtolower و ()strtoupper به ترتیب می توان تمام کاراکترهای یک رشته را به حروف کوچک و بزرگ تبدیل کرد.

مثال :
PHP:
echo strtolower("AhMaD");   // ahmad
echo strtoupper("AhMaD");   // AHMAD


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 9 :

با استفاده از تابع ()strpos می توانیم یک کاراکتر یا متن خاص را در رشته جستجو کنیم. خروجی این تابع ، موقعیت اولین کاراکتر متن مورد نظر را در رشته بر می گرداند و اگر متن مورد نظر در رشته وجود نداشت false بر می گرداند.

مثال :
PHP:
echo strpos("Ahmad Ordibehesht","Ordibehesht");   // 6


.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
نکته 10 :

با استفاده از تابع ()trim می توان فضای خالی ابتدا و انتهای یک رشته را حذف کرد.

مثال :
PHP:
$str = "         test       ";
echo trim($str);     // test


نکته 1 : با استفاده از دو تابع ()ltrim و ()rtrim می توان به ترتیب فضای خالی سمت چپ و راست یک رشته را حذف کرد.

نکته 2 : به صورت پیشفرض با توابع trim کاراکترهای زیر از ابتدا و انتهای رشته حذف می شوند :

کد:
" "
"\n"
"\o"
"\t"
"\r"
"\xoB"

اما اگر بخواهیم کاراکتر دلخواهمان را از ابتدا و انتهای رشته حذف کنیم ، آن کاراکتر را به عنوان آرگومان دوم تابع ()trim قرار می دهیم.

مثال :
PHP:
$str = "Hello \n";
echo trim($str , "\n");     // Hello



.
 
بالا