substr در PHP چیست؟ – توضیح به زبان ساده با مثال و کد
PHP یکی از محبوبترین زبانهای برنامه نویسی است که به شکل گستردهای در حوزه توسعه وب مورد استفاده قرار میگیرد. این زبان برنامه نویسی قدرتمند طیف گستردهای از توابع کاربردی مختلف را در اختیار توسعهدهندگان قرار داده است تا بتوانند به شکل موثرتری برنامههای خود را توسعه دهند. PHP در زمینه کار با رشتهها توابع متعددی دارد که یکی از آنها تابع substr است. به زبان ساده تابع substr در PHP به توسعهدهندگان امکان میدهد تا بخشی از یک رشته را بر اساس نقطه شروع و طول مشخص جدا کنند. در این مطلب از مجله فرادرس سینتکس تابع substr و نحوه پیادهسازی آن را همراه با چندین مثال مختلف بررسی خواهیم کرد.
در این مطلب ابتدا با سینتکس تابع substr آشنا میشوید و سپس چندین مثال از شیوههای مختلف پیادهسازی این تابع ارائه خواهد شد. با مطالعه این مطلب ضمن یادگیری کاربردهای مختلف تابع substr در PHP خواهید توانست از این تابع کاربردی در پروژههای خود به شکل مطلوبی استفاده کنید.
تابع substr در PHP چیست؟
substr یکی از توابع داخلی PHP است که به منظور جداسازی و استخراج بخشی از یک رشته مورد استفاده قرار میگیرد. در واقع، با استفاده از این تابع میتوان بخش مشخصی از یک رشته را جدا کرد.
تابع substr توسط نسخه PHP 4 و بالاتر پشتیبانی میشود. برای شروع کار با این تابع نیاز است ابتدا با سینتکس آن آشنا شوید. سینتکس پیادهسازی تابع substr در PHP به صورت زیر است.
1string substr ( string $string, int $start [, int $length ] )
تابع substr در PHP دارای ۳ پارامتر ورودی است و در خروجی نیز مقداری از نوع رشته برمیگرداند. در ادامه هر کدام از پارامترهای موجود در تابع substr به طور کامل توضیح داده شدهاند.
- string$: این پارامتر از نوع رشته است و رشته ورودی را مشخص میکند که قرار است بخشی از آن جدا شود.
- start$: این پارامتر از نوع عدد صحیح است که کاراکتر شروع برای جدا کردن رشته را مشخص میکند. اولین کاراکتر رشته در موقعیت0 قرار دارد. (در صورت منفی بودن این مقدار محاسبه از انتهای رشته صورت میگیرد.)
- length$: این پارامتر نیز از نوع عدد صحیح است که طول قسمت جدا شده از رشته اصلی را مشخص میکند. قرار دادن این پارامتر در تعریف تابع اختیاری است و در صورت نبودن این مقدار تابع باقی رشته را از موقعیت شروع مشخص شده برمیگرداند. (در صورت منفی بودن این مقدار تابع substr این تعداد کاراکتر را از انتهای رشته حذف خواهد کرد.)
بهطور خلاصه تابع substr در صورت پیدا کردن پارامتر ورودی$start یا نقطه شروع در رشته، بخش مورد نظر را جدا کرده و در خروجی برمیگرداند. در غیر این صورت، این تابع یک رشته خالی یا مقدار False را در خروجی برمیگرداند.
یادگیری PHP با فرادرس
PHP یکی از محبوبترین زبانهای برنامه نویسی در حوزه توسعه وب است که توسط افراد و کسبوکارهای مختلف مورد استفاده قرار میگیرد. بهکارگیری PHP در کنار سایر فناوریهای توسعه وب نظیر CSS ،HTML و جاوا اسکریپت به برنامهنویسان امکان میدهد تا وبسایتها و وب اپلیکیشنهای کاربردی قدرتمندی را توسعه دهند. دلایل بسیاری برای یادگیری زبان برنامه نویسی PHP وجود دارد که از جمله آنها میتوان به پذیرش گسترده، فرصتهای شغلی متعدد، یادگیری آسان، انعطافپذیری بالا و جامعه توسعهدهندگی بزرگ اشاره کرد. علاوه بر این، در بازار کار PHP در ایران و خارج از ایران فرصتهای شغلی متعددی برای متخصصان این حوزه وجود دارد. بنابراین، با یادگیری این زبان برنامه نویسی پرتقاضا میتوانید خود را برای موقعیتهای شغلی بسیار خوبی آماده کنید.
برای یادگیری زبان PHP راههای زیادی وجود دارد که یکی از بهترین روشها مشاهده فیلمهای آموزشی است. فیلمهای آموزشی ابزاری بسیار خوب برای یادگیری مفاهیم اولیه در این زبان برنامه نویسی هستند. در حین تماشای فیلمهای آموزشی میتوانید به تمرین کد نویسی بپردازید و هر آنچه مشاهده میکنید را پیادهسازی کنید. علاوه بر این، امکان مرور چندباره مفاهیم را نیز خواهید داشت. فرادرس به عنوان یکی از بزرگترین پلتفرمهای آموزش آنلاین کشور فیلمهای آموزشی متعددی در حوزههای مختلف برنامه نویسی همچون زبان PHP منتشر کرده است. برای شروع یادگیری زبان PHP میتوانید فیلم آموزش رایگان آشنایی با PHP فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
بعد از مشاهده دوره فوق برای یادگیری سایر مفاهیم موجود در PHP همچون آرایهها، توابع، مدیریت درخواستها و Sessionها، کار با فایلها، ارتباط با پایگاه داده و سایر موارد دیگر پیشنهاد میشود که فیلم آموزش برنامه نویسی PHP فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
چند مثال از پیاده سازی تابع substr در PHP
تابع substr در PHP مسئولیت انجام پردازش روی رشته ورودی و برگرداندن رشته نهایی در خروجی را برعهده دارد. این تابع ۳ پارامتر ورودی دارد که ۲ مورد از آنها اجباری و ۱ مورد دیگر اختیاری هستند. در واقع، قرار دادن پارامتر رشته ورودی و نقطه شروع استخراج رشته در این تابع اجباری و قرار دادن پارامتر طول رشته اختیاری است.
با توجه به این که هر کدام از پارامترهای ورودی تابع substr میتوانند مقادیر مختلفی داشته باشند. در نتیجه، خروجی تابع نیز متفاوت خواهد بود. در ادامه چند مثال ساده از پیادهسازی این تابع کاربردی آورده شده است تا با نحوه عملکرد آن بیشتر آشنا شوید.
مثال ۱: جداسازی رشته با نقطه شروع و طول مثبت
پردازش رشته توسط تابع substr در PHP بر اساس پارامتر نقطه شروع و طول رشته صورت میگیرد. همان طور که پیشتر نیز عنوان شد، نقطه شروع و طول رشته مقادیر متفاوتی میتوانند داشته باشند و بر همین اساس مقدار برگشتی تابع نیز متفاوت خواهد بود.
در مثال زیر متغیر$string به عنوان رشته ورودی تابع مشخص شده است که عملیات پردازش بر روی آن صورت خواهد گرفت. نقطه شروع جداسازی کاراکتر0 و طول رشته برگشتی نیز5 در نظر گرفته شده است.
1$string = "Hello, World!";
2$substring = substr($string, 0, 5);
3echo $substring;
بنابراین، خروجی تابع بالا به صورت زیر خواهد بود.
Hello
در مثال بالا ۵ کاراکتر ابتدایی رشتهHello, World! با تعیین موقعیت شروع برابر0 و طول رشته برابر5 جدا شدهاند. در نتیجه، رشتهHello در خروجی برگشت داده شده است.
مثال ۲: جداسازی رشته با نقطه شروع منفی و طول مثبت
در صورت منفی بودن پارامتر نقطه شروع آنگاه موقعیت جدا کردن رشته برگشتی از انتهای رشته محاسبه میشود. شمارش در انتهای رشته از ۱ صورت میگیرد.
1$string = "Hello, World!";
2$substring = substr($string, -6, 5);
3echo $substring;
در مثال بالا پارامتر نقطه شروع برابر-6 و طول رشته برابر5 است. بنابراین، از انتهای رشته با اندازه6 محاسبه انجام میشود. در نتیجه، خروجی تابع به صورت زیر خواهد بود.
World
با انجام عملیات پردازش رشته در مثال بالا رشتهWorld به عنوان خروجی برگشت داده خواهد شد.
مثال ۳: جداسازی رشته با نقطه شروع مثبت و طول منفی
حالت دیگری که در جداسازی رشته با تابع substr در PHP میتواند رخ دهد این است که پارامتر نقطه شروع مثبت و پارامتر طول رشته منفی باشد. در این حالت ابتدا کاراکترهای پیش از نقطه شروع حذف خواهند شد. سپس، با توجه به اندازه طول تعیین شده کاراکترها از انتهای رشته حذف میشوند. برای درک بهتر این موضوع مثال زیر را در نظر بگیرید.
1echo substr("blog faradars.org",4,-4)
در مثال بالا متغیر نقطه شروع برابر4 و متغیر طول رشته برابر-4 است. بنابراین، ۴ کاراکتر ابتدایی رشته فوق به خاطر نقطه شروع حذف خواهند شد. همچنین، به خاطر منفی بودن طول رشته نیز ۴ کاراکتر انتهایی رشته حذف میشوند. در نتیجه، خروجی حاصل از اجرا قطعه کد بالا به صورت زیر خواهد بود.
faradars
به زبان ساده در صورت منفی بودن متغیر طول رشته به اندازه این متغیر کاراکترها از انتهای رشته حذف خواهند شد.
مثال ۴: جداسازی رشته با نقطه شروع منفی و طول منفی
حالت دیگر ممکن برای تابع substr در PHP منفی بودن هر دو پارامتر نقطه شروع و طول رشته است. در این شرایط ابتدا با توجه به منفی بودن پارامتر نقطه شروع محاسبه موقعیت آن از انتهای رشته صورت میگیرد. بعد از تعیین موقعیت نقطه شروع به اندازه پارامتر طول رشته کاراکترها از انتهای رشته حذف خواهند شد. برای درک بهتر این موضوع مثال زیر را در نظر بگیرید.
1echo substr("blog faradars.org",-12,-4)
در قطعه کد بالا پارامتر نقطه شروع برابر-12 و پارامتر طول رشته برابر-4 است. بنابراین، با توجه به توضیحات ارائه شده در بالا خروجی حاصل از اجرای این قطعه کد به صورت زیر خواهد بود.
faradars
در این مثال ابتدا موقعیت نقطه شروع از انتهای رشته محاسبه میشود. سپس، با توجه به منفی بودن مقدار طول رشته یعنی-4 این تعداد کاراکتر از انتهای رشته حذف خواهند شد.
مثال ۵: برگرداندن رشته خالی در خروجی
اگر پارامتر نقطه شروع از طول رشته ورودی بزرگتر باشد، آنگاه تابع substr در PHP یک رشته خالی در خروجی برگشت خواهد داد. مثال زیر این موضوع را نشان میدهد.
1$string = "Hello, World!";
2$result = substr($string, 20);
3echo $result;
در قطعه کد بالا نقطه شروع جداسازی رشته برابر20 است که از طول رشته یعنی13 بزرگتر است. بنابراین، تابع substr یک رشته خالی را برگشت خواهد داد.
کاربردهای تابع substr در PHP چیست؟
تابع substr یکی از توابع مهم کار با رشتهها در PHP است. substr یک تابع همه کاره است که کاربردهای متعددی دارد. توسعه دهندگان PHP میتوانند از این تابع در پیادهسازی سناریوهای مختلف برنامه خود استفاده کنند. از جمله مهمترین کاربردهای تابع substr به موارد زیر میتوان اشاره کرد.
- کوتاه کردن یک رشته
- حذف یک کاراکتر خاص از رشته
- استخراج نام فایل از مسیر فایل
- استخراج زیر رشته
- دستکاری رشته برای ورودی های کاربر
- جداسازی کد یا شناسه محصول
- تبدیل فرمت های تاریخ و زمان
- استفاده در فیلدهای اعتبارسنجی
در ادامه این بخش هر کدام از کاربردهای substr به همراه مثال مورد بررسی قرار خواهند گرفت.
کوتاه کردن یک رشته
یکی از کاربردهای متداول تابع substr استفاده از آن برای کوتاه کردن یک رشته با طول مشخص است. به عنوان مثال، در بسیاری از وبلاگها پیش نمایش مقالات با تعداد محدودی کاراکتر نمایش داده میشود. برای پیادهسازی این مورد برنامهنویس میتواند از تابع substr در PHP استفاده کند.
قطعه کد زیر نحوه کوتاه کردن یک رشته با استفاده از تابع substr را نشان میدهد.
1
2$article = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua...";
3$preview = substr($article, 0, 50) . "...";
4
5echo $preview; // Output: "Lorem ipsum dolor sit amet, consectetur adipiscin..."
در مثال بالا رشته مورد نظر در متغیر$article ذخیره شده است. سپس، این متغیر به عنوان پارامتر ورودی به تابع substr ارسال میشود که علاوه بر آن پارامتر نقطه شروع برابر0 و تعداد کاراکتر برابر50 در نظر گرفته شده است. بنابراین، تابع substr از ابتدای رشته$article تعداد50 کاراکتر را جدا میکند و نتیجه به دست آمده را در متغیر$preview ذخیره میکند. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Lorem ipsum dolor sit amet, consectetur adipiscin...
بنابراین، با مشخص کردن رشته ورودی و تعداد کاراکتر مورد نیاز برای جداسازی در این تابع میتوان رشته مورد نظر را کوتاه کرد.
حذف یک کاراکتر خاص از رشته
با استفاده از تابع substr در PHP میتوان یک یا مجموعهای از کاراکترها را از یک رشته حذف کرد. علاوه بر این، میتوان عملکرد این تابع را با تابع str_replace ترکیب کرد. برای درک بهتر این موضوع مثال زیر آورده شده است.
1$string = "ali is best student in shahed school";
2$char_to_remove = "shahed";
3$new_string = str_replace($char_to_remove, "", $string);
4
5echo substr($new_string,0,19) ;
در مثال بالا ابتدا رشتهshahed از رشته اصلی موجود حذف شده است. سپس، با استفاده از تابع substr بخش مورد نظر جدا شده است. خروجی قطعه کد بالا به صورت زیر خواهد بود.
ali is best student
برای یادگیری بیشتر در خصوص توابع مختلف موجود در زبان PHP میتوانید به مطلب زیر از مجله فرادرس رجوع کنید که لینک آن در ادامه آورده شده است.
استخراج نام فایل از مسیر فایل
به کمک تابع substr میتوان در صورت داشتن مسیر یک فایل نام آن را بدون پسوند استخراج کرد. برای این منظور باید عملکرد تابع substr را با تابع strrpos ترکیب کنید. تابع strrpos در PHP موقعیت یک کاراکتر را درون یک رشته برمیگرداند. به مثال زیر توجه کنید.
1
2$file_path = "/path/to/my/file.txt";
3$filename_start = strrpos($file_path, "/") + 1;
4$filename_end = strrpos($file_path, ".");
5$filename = substr($file_path, $filename_start, $filename_end - $filename_start);
6
7echo $filename; // Output: "file"
در مثال بالا مسیر فایل به صورت رشته درون متغیر$file_path ذخیره شده است. سپس، با استفاده از تابع strrpos موقعیت آخرین کاراکتر/ و کاراکتر. را درون این رشته پیدا خواهیم کرد. در انتها برای استخراج نام فایل بدون پسوند از تابع substr در PHP به همراه پارامتر نقطه شروع و طول رشته استفاده شده است. خروجی قطعه کد بالا به صورت زیر خواهد بود.
file
استخراج زیر رشته
با استفاده از پارامترهای نقطه شروع و طول رشته در تابع substr به سادگی میتوان یک زیر رشته از یک رشته معین را استخراج کرد. این کاربرد در مثال زیر نشان داده شده است.
1$text = "Hello, World!";
2$substring = substr($text, 7, 5);
3echo $substring;
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
World
دستکاری رشته برای ورودی های کاربر
از تابع substr برای پردازش ورودیهای کاربر در برنامه نیز میتوان استفاده کرد. به عنوان مثال، گاهی نیاز است تا طول رشته وارد شده توسط کاربر محدود شود. برای این منظور میتوان از تابع substr استفاده کرد.
1$userInput = "This is a very long user input.";
2$limitedInput = substr($userInput, 0, 20);
3echo $limitedInput;
در مثال بالا رشته ورودی توسط کاربر درون متغیر$userInput قرار گرفته است. سپس، با استفاده از substr طول این رشته به اندازه ۲۰ واحد محدود شده است. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
This is a very lo
جداسازی کد یا شناسه محصول
با استفاده از تابع substr در PHP میتوان بخش خاصی از یک رشته مانند کد یا شناسه محصول را جدا کرد. به مثال زیر توجه کنید.
1$code = "PROD-123456";
2$productId = substr($code, 5);
3echo $productId;
در قطعه کد بالا شناسه محصول با استفاده از تابع substr جدا و در متغیر$productId ذخیره شده است. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
123456
تبدیل فرمت های تاریخ و زمان
با استفاده از تابع substr میتوان فرمتهای مختلف تاریخ و زمان را به یکدیگر تبدیل کرد. نمونه کد زیر کاربرد تابع substr در تبدیل تاریخ را نشان میدهد.
1$date = "2024-09-02";
2$year = substr($date, 0, 4);
3echo $year
خروجی حاصل از اجرای کد بالا به صورت زیر خواهد بود.
2024
استفاده در فیلدهای اعتبارسنجی
یکی دیگر از کاربردهای تابع substr استفاده از آن در فیلدهای اعتبارسنجی است. به عنوان مثال با استفاده از این تابع میتوان از وجود پیشوند یا پسوند مشخصی در یک فیلد مشخص اطمینان حاصل کرد. قطعه کد زیر این کاربرد را نشان میدهد.
1$id = "ID-2024-0001";
2if (substr($id, 0, 3) === "ID-") {
3 // Valid ID
4}
در مثال بالا با استفاده از تابع substr وجود زیر رشتهID- درون متغیر$id مورد بررسی قرار گرفته است.
یادگیری PHP با آموزش های پروژه محور فرادرس
بعد از آشنایی با مفاهیم و اصول پایه موجود در PHP برای تکمیل مسیر یادگیری باید آموختهها خود را به صورت عملی نیز پیادهسازی کنید. برای این منظور در گام نخست میتوانید پروژه کوچکی مانند پیادهسازی یک وبلاگ ساده را برای خود تعریف کنید و آن را توسعه دهید. بعد از انجام چند پروژه ساده میتوانید برای خود چالشهای بزرگتری مانند پیادهسازی یک فروشگاه آنلاین اینترنتی یا توسعه یک شبکه اجتماعی را در نظر بگیرید. یکی از بهترین انتخابها در این مرحله از مسیر یادگیری استفاده از فیلمهای آموزشی پروژه محور است. با مشاهده آموزشهای پروژه محور PHP بهطور کامل در جریان انجام تمام مراحل توسعه یک پروژه قرار خواهید گرفت و بهکارگیری مفاهیم را به صورت عملی خواهید آموخت.
خوشبختانه در پلتفرم فرادرس فیلمهای آموزشی پروژه محور متعددی در حوزه زبان برنامه نویسی PHP منتشر شده است. فیلمهای آموزشی پروژه محور متعددی در مجموعه آموزشهای برنامهنویسی PHP فرادرس قابل دسترسی هستند که لینک آن در ادامه آورده شده است.
برخی از فیلمهای آموزشی پیشنهادی در این مجموعه به شرح زیر هستند.
- فیلم آموزش پروژه محور طراحی سایت فروشگاهی با PHP فرادرس
- فیلم آموزش پروژه محور ساخت وبلاگ شخصی با PHP فرادرس
- فیلم آموزش پروژه محور ساخت موتور جستجو برای وب سایت با PHP فرادرس
- فیلم آموزش پروژه محور ساخت ربات و تبدیل آن به شخص واقعی با PHP فرادرس
جمعبندی
تابع substr در PHP ابزار بسیار قدرتمندی است که به توسعهدهندگان امکان میدهد تا به شکل موثری با رشتهها کار کنند. با استفاده از این تابع توسعهدهندگان میتوانند با پردازش رشتههای مختلف بخشهای مورد نظر خود را از رشته استخراج نمایند. توسعهدهندگان PHP با یادگیری کاربردهای مختلف این تابع میتوانند کارایی کد خود را بهبود بخشند. برای یادگیری بیشتر در خصوص توابع مهم PHP پیشنهاد میشود مجموعه فیلمهای آموزش PHP فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.
در این مطلب از مجله فرادرس ابتدا سینتکس تابع substr و پارامترهای ورودی آن را بررسی کردیم. سپس با توجه به مقادیر ممکن برای پارامترهای ورودی این تابع چند مثال از شیوههای مختلف پیادهسازی آن ارائه شد. در ادامه نیز برای درک کاربردهای عملی substr در PHP چندین نمونه مثال از کاربرد این تابع در نمونههای واقعی مورد بررسی قرار گرفت.