به هشتمین جلسه از آموزش برنامه نویسی PHP خوش آمدید. در این جلسه با مبحث رشته ها در PHP آشنا خواهیم شد.
رشته ها در PHP
رشته (string) عبارتی است که متشکل از تعدادی از کاراکترهاست و میان یک جفت تک کوتیشن ‘ ‘ و یا دبل کوتیشن ” “ محصور شده است. در جلسات گذشته چندین بار از رشته های کاراکتری استفاده کرده ایم. در این جلسه بصورت مفصل و تخصصی به مبحث رشته ها در PHP خواهیم پرداخت.
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 |
<?php $string_1 = 'Ali'; $string_2 = "Reza"; echo $string_1 . ' ' . $string_2; ?> |
در قطعه کد فوق در خطوط ۳ و ۴ دو متغیر رشته ای با مقادیر Ali و Reza تعریف شده است. تنها تفاوت در این است که در مورد اول از تک کوتیشن ‘ ‘ و در مورد دوم از دبل کوتیشن ” “ استفاده شده است. در حالت کلی این دو روش هیچ تفاوت خاصی با یکدیگر ندارند، مگر در یک حالت که در ادامه آموزش به آن خواهیم پرداخت. در خط ۶ نیز مقدار این دو متغیر همراه با یک کاراکتر فضای خالی، با استفاده از عملگر نقطه (.) به یکدیگر متصل و در خروجی چاپ شده است.
خروجی قطعه کد بالا عبارت Ali Reza است.
تفاوت تک کوتیشن ‘ ‘ و دبل کوتیشن ” “
کاراکترهای تک کوتیشن و دبل کوتیشن تنها در یک مورد با یکدیگر متفاوتند. آن هم زمانی که در درون خود متغیری را به همراه داشته باشند.
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 |
<?php $a = 10; $b = 20; echo "a = $a , b = $b" . "<br><br>"; echo 'a = $a , b = $b'; ?> |
در قطعه کد بالا در دو خط ۶ و ۸ سعی شده تا مقادیر دو متغیر a و b در خروجی چاپ شود. محدودیتی که در مورد تک کوتیشن ‘ ‘ وجود دارد این است که قابلیت تشخیص و جایگزینی نام متغیر با مقدار آن را ندارد.
خروجی این قطعه کد به صورت زیر است:
1 2 |
a = 10 , b = 20 a = $a , b = $b |
استفاده از تک کوتیشن ‘ ‘ و دبل کوتیشن ” ” در میان رشته
چنانچه بخواهیم در میان یک رشته کاراکتری از کاراکترهای ‘ و “ استفاده کنیم، باید قبل از آنها از کاراکتر بک اسلش \ استفاده کنیم. استفاده از ‘ در میان عبارتی که خود با ” محصور شده است، بلامانع است و مشکلی ایجاد نمی کند (و برعکس برای “).
به قطعه کد زیر توجه کنید:
1 2 3 4 5 6 7 |
<?php echo "my 'name' is \"Ali\"" . "<br><br>"; echo 'my "name" is \'Ali\''; ?> |
خروجی این قطعه کد به صورت زیر است:
1 2 |
my 'name' is "Ali" my "name" is 'Ali' |
تعدادی از توابع کتابخانه ای کار با رشته ها در PHP
از آنجا که رشته های کاراکتری بسیار پرکاربرد هستند، تعداد زیادی از توابع کتابخانه ای برای کار با رشته ها در PHP قرار داده شده است. در جلسه ششم از آموزش های برنامه نویسی به زبان PHP در مورد توابع کتابخانه ای بحث کردیم. در این بخش تعدادی از توابع کتابخانه ای مهم و پرکاربرد برای کار با رشته ها در PHP را شرح می دهیم.
تابع ()str_word_count
1 2 3 4 5 |
<?php echo str_word_count("hello how are you?"); ?> |
تابع ()str_word_count تعداد کلمات یک رشته را محاسبه می کند. خروجی قطعه کد بالا عدد ۴ است.
تابع ()strlen
1 2 3 4 5 |
<?php echo strlen("hello"); ?> |
تابع ()strlen تعداد کاراکترهای یک رشته را محاسبه می کند. خروجی قطعه کد بالا عدد ۵ است.
تابع ()strtoupper
1 2 3 4 5 |
<?php echo strtoupper("hello"); ?> |
تابع ()strtoupper کلیه کاراکترهای یک رشته را به حروف بزرگ انگلیسی تبدیل می کند. خروجی قطعه کد بالا عبارت HELLO است.
تابع ()strtolower
1 2 3 4 5 |
<?php echo strtolower("Hello John"); ?> |
تابع ()strtolower برعکس تابع ()strtoupper ، کلیه کاراکترهای یک رشته را به حروف کوچک انگلیسی تبدیل می کند. خروجی قطعه کد بالا عبارت hello john است.
تابع ()ucfirst
1 2 3 4 5 |
<?php echo ucfirst("hello i am john"); ?> |
تابع ()ucfirst حرف اول یک رشته را به حرف بزرگ انگلیسی تبدیل می کند. خروجی قطعه کد بالا عبارت Hello i am john است.
تابع ()ucwords
1 2 3 4 5 |
<?php echo ucwords("hello i am john"); ?> |
تابع ()ucwords حرف اول تمام کلمات یک رشته را به حرف بزرگ انگلیسی تبدیل می کند. خروجی قطعه کد بالا عبارت Hello I Am John است.
تابع ()str_replace
1 2 3 4 5 |
<?php echo str_replace("john", "jack", "hello i am john"); ?> |
تابع ()str_replace جهت جایگزینی یک عبارت خاص با عبارت دلخواه در یک رشته استفاده می شود. این تابع سه پارامتر دارد. پارامتر اول عبارتی است که می بایست جهت جایگزینی در طول رشته جستجو شود. پارامتر دوم عبارت جایگزینی است که می بایست به جای پارامتر اول قرار گیرد. پارامتر سوم نیز همان رشته مورد نظر جهت جستجو و جایگزینی است. خروجی قطعه کد بالا عبارت hello i am jack است.
تابع ()str_replace را بگونه دیگری نیز می توان استفاده کرد. به این صورت که به جای هر یک از پارامترهای اول و دوم این تابع یک آرایه تعریف می کنیم. عناصر نظیر در این آرایه ها برای جستجو و جایگزینی انتخاب می شوند.
1 2 3 4 5 6 7 |
<?php $find = array("i" , "am"); $replace = array("you" , "are"); echo str_replace($find, $replace, "hello i am john"); ?> |
خروجی قطعه کد بالا عبارت hello you are john است.
تابع ()str_split
1 2 3 4 5 6 7 8 |
<?php $arr = str_split("hello"); echo "<pre>"; print_r($arr); echo "</pre>"; ?> |
تابع ()str_split جهت شکافتن (قطعه قطعه کردن) یک رشته استفاده می شود. نتیجه این شکافتن (کاراکترهای رشته) درون یک آرایه قرار می گیرد. در خط ۳ مقدار برگشتی تابع ()str_split درون آرایه arr$ ریخته شده است. در خط ۵ نیز مقادیر موجود در این آرایه توسط دستور print_r در خروجی چاپ شده است. در خطوط ۴ و ۶ نیز جهت زیبایی و خوانایی نمایش مقادیر آرایه از تگ <pre> استفاده شده است.
خروجی قطعه کد بالا به صورت زیر است:
1 2 3 4 5 6 7 8 |
Array ( [0] => h [1] => e [2] => l [3] => l [4] => o ) |
تابع ()strpos
1 2 3 4 5 |
<?php echo strpos("hello" , 'l'); ?> |
تابع ()strpos موقعیت قرارگیری (اندیس) یک کاراکتر خاص را در یک رشته مشخص می کند. در قطعه کد بالا ما به دنبال پیدا کردن موقعیت کاراکتر l هستیم. مشخص است که در رشته hello دو عدد کاراکتر l وجود دارد. تابع ()strpos همواره موقعیت اولین محل وقوع کاراکتر مورد نظر را بر می گرداند. خروجی قطعه کد بالا عدد ۲ است (شماره گذاری از صفر شروع می شود).
تابع ()substr
1 2 3 4 5 6 7 |
<?php echo substr("hello", 0, 2) . "<br>"; echo substr("hello", 0 , -2); ?> |
تابع ()substr جهت استخراج یک بخش (زیر رشته) از یک رشته خاص استفاده می شود. در قطعه کد بالا در خط ۳ ما می خواهیم که در عبارت hello از ابتدای رشته شروع به حرکت کرده (عدد ۰ – پارامتر دوم) و به اندازه ۲ کاراکتر (عدد ۲ – پارامتر سوم) از این رشته را استخراج کنیم.
تابع ()substr را به صورت دیگری نیز می توان به کار برد. در خط ۵ پارامتر سوم این تابع را ۲- قرار داده ایم. این بدین معنی است که استخراج زیر رشته از ابتدای رشته شروع شده (اندیس ۰) و تا ۲ کاراکتر مانده به آخر رشته ادامه می یابد.
خروجی قطعه کد فوق بدین صورت است:
1 2 |
he hel |
به پایان این جلسه آموزشی رسیدیم. در آینده با بخشهای دیگری از زبان PHP آشنا خواهیم شد. با ما همراه باشید…
9 دیدگاه. ارسال دیدگاه جدید
سلام وقتتون بخیر
با آرزوی موفقیت برای شما
بسیار ممنون از آموزش های کاربردی و پیوسته 👌👌
سلام استاد من میخوام از کاربر یک جمله دریافت کنم و بعد ۲ حرف اول کلمات رو کنار هم استتخراج کنم.
بطور مثال کاربر وارد کنه: salam hale shoma و چیزی که من استخراج میکنم این بشه: sa ha sh
میدونم که توسط تابع explode و substr باید این کارو انجام بدم اما هر کاری میکنم کدی که مینویسم این خروجی که میخوام رو نمیده
دوست عزیز باید از قطعه کدی مشابه زیر استفاده کنید:
سلام استاد چجوری میشه بررسی کرد که یک آرایه یک عدد هست یا نه؟
دوست عزیز اگر منظورتون محاسبه تعداد عناصر آرایه در زبان php هست، باید بگم که برای اینکار میتونید از دو تابع ()count و یا ()sizeof استفاده کنید.
این دو تابع تعداد عناصر یک آرایه رو برمیگردونن و شما با استفاده از یک شرط (دستور if) میتونید بررسی کنید که برای مثال اگر تعداد عناصر آرایه یکی بود، فلان اتفاق بیفته.
سلام مهندس وقتتون بخیر
می شه در مورد کلمه جوابو برمی گردونه توضیح بدید؟
دوست عزیز اگر منظورتون برگشت مقدار از توابع هست، باید بگم که وقتی ما یک تابعی رو فراخوانی میکنیم، کنترل برنامه بلافاصله به تابع منتقل شده و کدهای درون اون رو اجرا میکنه.
در نهایت اگر تابع نیاز به برگشت مقدار داشته باشه، نتیجه محاسباتی رو که انجام داده به برنامه اصلی (اون جایی که فراخوانی شده) برمیگردونه. برنامه اصلی هم هر کاری که دلش خواست میتونه با این جواب برگشتی از تابع انجام بده (مثلا چاپ اون در خروجی و یا هر کار دیگهای).
برای توضیحات بیشتر میتونید به جلسه ششم مراجعه کنید.
سلام مهندس وقتتون بخیر خوبید؟
در ادامهی تلاشهام رفتم پروکسی ویندزو تو ستینگش غیر فعال کردم مشکل حل شد
الان دیگه خروجی میده، تشکر
خب خداروشکر دوست عزیز
خوشحالم که مشکلتون حل شد.