رشته در PHP نوع دادهای متنی هستند که برای ذخیره و پردازش متن استفاده میشوند. میتوان رشتهها را با کوتیشن تکی ‘ یا دوتایی ” تعریف کرد. کوتیشن دوتایی امکان استفاده از متغیرها و کاراکترهای escape را فراهم میکند. عملیات رایج شامل اتصال (.)، محاسبه طول ()strlen، جایگزینی ()str_replace، و برش ()substr است. رشتهها ابزار مهمی در پردازش دادههای متنی «Text data processing» محسوب میشوند.
مقدمه
رشته در PHP یکی از متداولترین و پرکاربردترین نوع دادهها در برنامهنویسی هستند. رشته در PHP مجموعهای از کاراکترها است که میتواند شامل حروف، اعداد، نمادها و فضاهای خالی باشد. این دادهها معمولاً برای نمایش متن، ذخیرهسازی اطلاعات متنی، و یا پردازش دادههای ورودی استفاده میشوند.
رشته در PHP را میتوان به چندین روش مختلف تعریف و استفاده کرد. دو روش اصلی تعریف رشته عبارتاند از:
- استفاده از کوتیشن تکی (‘): این نوع رشتهها سادهتر هستند و مقادیر داخلی آنها بهصورت خام (بدون پردازش متغیرها) ذخیره میشود.
- استفاده از کوتیشن دوتایی (“): این نوع رشتهها امکان استفاده از متغیرها و کدهای escape را در خود دارند.
رشته در PHP
رشته در PHP یکی از پایهایترین نوع دادهها هستند. از رشتهها برای مدیریت دادههای متنی «Text data»، پردازش ورودی کاربران «Input processing»، تولید محتوای پویا و بسیاری موارد دیگر استفاده میشود. رشته در PHP به معنای دنبالهای از کاراکترها است که میتواند شامل حروف، اعداد، نمادها و کاراکترهای خاص باشد. رشتهها یک نوع دادهی انعطافپذیر هستند و بهطور گسترده برای مدیریت ورودی/خروجی، تولید محتوای پویا و بسیاری از کاربردهای دیگر استفاده میشوند
اعلان رشته در PHP
رشته در PHP را میتوان با استفاده از سینتکسهای زیر تعریف کرد:
۱- نقل قول تک
در PHP، از نقل قول تک «Single Quotes» برای تعریف رشته در PHP استفاده میشود. متنی که در داخل نقل قول تک قرار میگیرد، به صورت مستقیم و بدون تفسیر کاراکترهای خاص یا متغیرها پردازش میشود.
<?php // Singlequote strings $site = 'Welcome to ProgramStore'; echo $site; ?>
خروجی:
Welcome to ProgramStore
برنامه بالا به درستی کامپایل میشود. در این برنامه، یک رشته با مقدار Welcome to ProgramStore ایجاد شده و در یک متغیر ذخیره شده است و سپس با استفاده از دستور echo چاپ میشود.
اکنون به برنامه زیر توجه کنید:
<?php // Single Quote Strings $site = 'ProgramStore'; echo 'Welcome to $site'; ?>
خروجی:
Welcome to $site
۲- نقل قول دوگانه (Double Quotes)
برخلاف رشتههای تعریفشده با نقل قول تک، رشتههای تعریفشده با نقل قول دوگانه در PHP قادر به پردازش کاراکترهای خاص هستند.
<?php // Double Quote Strings echo "Welcome to programstore\n"; $site = "programstore"; echo "Welcome to $site"; ?>
خروجی:
Welcome to programstore Welcome to programstore
در برنامه بالا، میبینیم که رشتههای با نقل قول دوگانه، کاراکترهای خاص را طبق ویژگیهایشان پردازش میکنند. کاراکتر \n چاپ نمیشود و بهعنوان یک خط جدید در نظر گرفته میشود. همچنین به جای نام متغیر $site، عبارت «programstore» چاپ میشود.
توجه: PHP هر چیزی که داخل نقل قول دوگانه (” “) باشد را بهعنوان رشته در نظر میگیرد.
در این مقاله، ما در مورد نحوه کارکرد توابع مختلف رشته در PHP و چگونگی پیادهسازی آنها، همراه با برخی ویژگیهای خاص رشتهها، یاد خواهیم گرفت. برخلاف دیگر انواع دادهها مانند اعداد صحیح «Integer»، اعشاری «Decimal»و غیره، رشتهها محدودیت یا دامنه مشخصی ندارند. آنها میتوانند به هر طولی که در داخل نقل قولها باشند، گسترش یابند.
رشتههای داخل نقل قول تک و دوگانه بهطور متفاوتی پردازش میشوند. رشتههای داخل نقل قول تک کاراکترهای خاص را نادیده میگیرند، اما رشتههای داخل نقل قول دوگانه کاراکترهای خاص را شناسایی کرده و بهطور متفاوتی با آنها رفتار میکنند.
<?php $name = "Krishna"; echo "The name of the Program is $name \n"; echo 'The name of the Program is $name'; ?>
خروجی:
The name of the Program is Krishna The name of the Program is $name
برخی از کاراکترهای خاص مهم و پر استفاده که با رشتههای تعریفشده با نقل قول دوگانه استفاده میشوند، در زیر توضیح داده شدهاند:
کاراکتری که با بک اسلش (\\) شروع میشود بهعنوان دنبالههای فرار«escape sequences» در نظر گرفته میشود و با کاراکترهای خاص جایگزین میشود. در اینجا چند دنباله فرار مهم آورده شده است.
- \n با یک خط جدید جایگزین میشود.
- \t با یک فاصله تب جایگزین میشود.
- \$ با علامت دلار جایگزین میشود.
- \r با بازگشت به ابتدای خط جایگزین میشود.
- \\ با بک اسلش جایگزین میشود.
- \ با نقل قول دوگانه جایگزین میشود.
- \ با نقل قول تک جایگزین میشود.
رشتههایی که با علامت دلار ($) شروع میشوند بهعنوان متغیر در نظر گرفته میشوند و با محتوای آن متغیرها جایگزین میشوند.
۳- سینتکس Heredoc
سینتکس Heredoc (<<<) روش دیگری برای تعیین مرز رشتهها در PHP است. پس از عملگر heredoc (<<<)، یک شناسه «identifier» مشخص میشود که پس از آن هر متنی میتواند بهعنوان یک خط جدید نوشته شود. برای بستن سینتکس، همان شناسه باید بدون هیچگونه تب یا فاصله در انتهای متن نوشته شود.
توجه: سینتکس Heredoc مشابه رشتههای با نقل قول دوگانه است، اما بدون استفاده از نقل قولها.
<?php $input = <<<testHeredoc Welcome to ProgramStore. Started content writing in ProgramStore!. I am enjoying this. testHeredoc; echo $input; ?>
خروجی:
Welcome to ProgramStore. Started content writing in ProgramStore!. I am enjoying this.
۴- سینتکس Nowdoc
Nowdoc بسیار مشابه به heredoc است به جز نحوه پردازشهایی که در heredoc انجام میشود. سینتکس آن مشابه سینتکس heredoc است با این تفاوت که از نماد <<< بههمراه یک شناسه که در داخل نقل قول تک قرار دارد، استفاده میشود. قوانین nowdoc همانند heredoc است.
توجه: سینتکس Nowdoc مشابه رشتههای با نقل قول تک است.
<?php $input = <<<'testNowdoc' Welcome to ProgramStore. Started content writing in ProgramStore!. testNowdoc; echo $input; // Directly printing string // without any variable echo <<<'Nowdoc' Welcome to PS. Learning PHP is fun in GFG. Nowdoc; ?>
خروجی:
Welcome to ProgramStore. Started content writing in ProgramStore!. Welcome to PS. Learning PHP is fun in GFG.
برخی از توابع مهم رشتهای توکار در PHP
توابع توکار PHP، توابعی هستند که در کتابخانههای موجود PHP وجود دارند و میتوانند بهطور مستقیم در برنامههای ما استفاده شوند با فراخوانی مناسب آنها. در زیر برخی از توابع مهم رشتهای توکار که در برنامههای روزمره و معمولی خود از آنها استفاده میکنیم آورده شده است:
۱- تابع ()strlen در PHP
این تابع برای یافتن طول یک رشته استفاده میشود. این تابع رشته را بهعنوان آرگومان دریافت کرده و طول یا تعداد کاراکترهای موجود در آن رشته را برمیگرداند.
<?php echo strlen("Hello ProgramStore!"); ?>
خروجی:
۲۰
۲- تابع ()strrev در PHP
این تابع برای معکوس کردن یک رشته استفاده میشود. این تابع رشته را بهعنوان آرگومان دریافت کرده و رشته معکوس شده آن را برمیگرداند.
<?php echo strrev("Hello ProgramStore!"); ?>
خروجی:
!erotSmargorP olleH
۳- تابع ()str_replace در PHP
این تابع سه رشته در PHP را بهعنوان آرگومان دریافت میکند. آرگومان سوم رشته اصلی است و آرگومان اول با آرگومان دوم جایگزین میشود. به عبارت دیگر، میتوان گفت که این تابع تمام وقوعهای آرگومان اول را در رشته اصلی با آرگومان دوم جایگزین میکند.
<?php echo str_replace("Program", "World", "Hello ProgramStore!"), "\n"; echo str_replace("for", "World", "Hello ProgramStore!"), "\n"; ?>
خروجی:
Hello WorldforWorld! Hello ProgramStore!
در مثال اول، میبینیم که تمام وقوعهای کلمه Program در !Hello ProgramStore با کلمه World جایگزین شدهاند.
۴- تابع ()strpos در PHP
این تابع دو آرگومان رشتهای را دریافت میکند و اگر رشته دوم در رشته اول موجود باشد، موقعیت شروع آن رشته را برمیگرداند. در غیر این صورت، مقدار FALSE را باز میگرداند.
<?php echo strpos("Hello ProgramStore!", "Program"), "\n"; echo strpos("Hello ProgramStore!", "Store"), "\n"; var_dump(strpos("Hello ProgramStore!", "Program")); ?>
خروجی:
۶ ۱۳ int(6)
در برنامه بالا، در مثال سوم، رشته Program در رشته اول موجود نیست، بنابراین این تابع مقدار بولی false را باز میگرداند که نشان میدهد رشته مورد نظر در آن موجود نیست.
۵- تابع ()trim در PHP
این تابع به ما این امکان را میدهد که فضاهای خالی یا رشته در PHP را از هر دو سمت یک رشته حذف کنیم.
<?php echo trim("Hello World!", "Hed!"); ?>
خروجی:
llo Worl
۶- تابع ()explode در PHP
این تابع یک رشته در PHP را به یک آرایه تبدیل میکند.
<?php $input = "Welcome to programstore"; print_r(explode(" ",$input)); ?>
خروجی:
Array ( [۰] => Welcome [۱] => to [۲] => programstore )
۷- تابع ()strtolower در PHP
این تابع یک رشته در PHP را به رشتهای با حروف کوچک تبدیل میکند.
<?php $input = "WELCOME TO PROGRAMSTORE"; echo strtolower($input); ?>
خروجی:
welcome to programstore
۸- تابع ()strtoupper در PHP
این تابع یک رشته در PHP را به رشتهای با حروف بزرگ تبدیل میکند.
<?php $input = "Welcome to programstore"; echo strtoupper($input); ?>
خروجی:
WELCOME TO PROGRAMSTORE
۹- تابع ()str_word_count در PHP
این تابع تعداد کل کلمات موجود در یک رشته را شمارش میکند.
<?php $input = "Welcome to ProgramStore"; echo str_word_count($input); ?>
خروجی:
۳
۱۰- تابع ()substr در PHP
این تابع زیررشتهای از یک رشته داده شده را از اندیس مشخص شده برمیگرداند.
<?php $input = "Welcome to programstore"; echo(substr($input,3)); ?>
خروجی:
come to programstore
نتیجه گیری
در PHP، کار با رشتهها امکانات گستردهای را برای پردازش و مدیریت متن فراهم میکند. توابع داخلی متعددی مانند strlen برای محاسبه طول رشته، substr برای استخراج بخشهایی از متن، str_replace برای جایگزینی مقادیر و strpos برای جستجوی موقعیت یک زیررشته وجود دارد. همچنین میتوان از عملگرهای مربوط به رشته برای الحاق و تغییر محتوا استفاده کرد. در مجموع، مدیریت رشته در PHP و انعطافپذیر است و میتوان با ترکیب توابع مختلف، پردازشهای پیچیدهای را بهراحتی انجام داد.