آموزش تابع substr در php
مقالات برنامه نویسیچگونه با تابع substr دربرنامه نویسی با php کار کنیم ؟ آموزش صفر تا صد کار با تابع رشتهای substr ، نکات مهم مربوط به تابع کات کردن رشتهها در php

در زبان برنامه نویسی php توابع کاربردی بسیاری وجود دارد که میتوانید جهت تسهیل در پروسه کدنویسی خودتان از آن استفاده کنید . اگر با بحث توابع در php آشنایی دارید ، اطلاع دارید که خودتان نیز میتوانید توابع مختلف را ایجاد و بسته به نوع پروژه از آن استفاده کنید . برا اینکه یک کدنویسی تمیز داشته باشیم ، باید حدالامکان سعی کنیم تا از توابعی که داخل خود php تعریف شده استفاده کنیم تا ضمن آسان سازی در کدنویسی ، پروژه شما بسیار استاندارد باشد .
توابع در زبان برنامه نویسی php دسته بندی شده است و برای قسمتهای مختلف مثل رشتهها ، آرایهها و … توابعی وجود دارند که پروسه کدنویسی شما را بسیار تسهیل خواهند کرد . در این مقاله یکی از توابع در دسته بندی توابع رشتهای را بررسی خواهیم کرد بنام substr !
تابع substr
در زبان برنامه نویسی php تقریبا میتوان از نام توابع ، کاربرد آنها را حدس زد ! توابعی که در نام آنها از کلمه str استفاده شده باشد ، مربوط به قسمت string یا اصطلاحا رشتهها هستند . کاری که این تابع انجام خواهد داد این است که یک رشته را از شما دریافت خواهد کرد و سپس به مقداری که شما تعیین خواهید کرد ، این رشته را برش خواهد زد . این تابع در زبان php بصورت زیر تعریف شده است :
substr(string $string, int $offset, ?int $length = null)
این تابع در حالت اصولی 3 ورودی دارد که خدمتتان آموزش خواهیم داد . پارامتر اول این تابع که بصورت $string تعریف شده است ، درحقیقت رشتهای است که قصد داریم تا آن را کات کنیم . پس این تابع در ورودی اول یک رشته که مدنظر ما است را دریافت خواهد کرد .
اکنون پارامتر دوم تابع چیست ؟ پارامتر دوم یک عدد است و تعیین خواهد کرد که شما از کدام حرف رشته قصد دارید تا عمل برش را انجام دهید ، اگر این عدد 0 باشد از ابتدای رشته برش خواهد خورد یعنی ابتدای رشته شما شروع برش است . اگر این عدد مثبت باشد ، شروع برش از ابتدای رشته شما است و اگر این عدد منفی باشد ، شروع برش از انتهای رشته است . اگر شما رشته زیر را در نظر داشته باشید :
hello my string
اگر عدد شروع شما عدد 3 باشد ، خروجی شما بصورت زیر خواهد بود :
lo my string
اما پارامتر سوم برای چیست ؟ پارامتر سوم برای این است که تعیین کنیم چند کاراکتر از رشته را باید برگردانیم ! اگر این پارامتر را قرار ندهیم و خالی باشد ، رشته شما از نقطه تعیین شده در پارامتر اول تا انتهای رشته چاپ خواهد شد . به مثال زیر دقت کنید :
$str = abcde fghi jklmn opqrst uvwx yz;
substr($str,6);
#output => fghi jklmn opqrst uvwx yz
اگر اکنون پارامتر سوم را نیز تعیین کنیم ، بصورت زیر خواهد بود :
$str = abcde fghi jklmn opqrst uvwx yz;
substr($str,6,13);
#output => fghi jklmn op
دقت داشته باشید که کاراکتر فاصله یا همان space نیز جز کاراکترهای رشته محسوب میشود و در تعداد ، شمارش خواهد شد .
مقداردهی تابع با اعداد منفی
اگر نیاز داشتید تا از قسمت انتهای رشته مقادیری را کات کنید ، میتوانید از مقادیر منفی استفاده کنید . توجه کنید که رشته شما در حالت مثبت یا همان ابتدا ، از عدد صفر شروع میشود اما در حالت برعکس یا همان انتهای رشته از عدد -1 شروع میشود . اکنون به مثال زیر دقت کنید :
$rest = substr("abcdef", -3, -1); // returns "de"
در این حالت ، باتوجه خروجی ارائه شده ، چون عدد -3 وارد شده است ، شروع رشته شما حرف d است و چون عدد دوم برابر با -1 است پس تا آخر رشته را پیمایش خواهد کرد اما حرف آخر را چاپ نخواهد کرد چراکه عدد -1 نشان دهنده کاراکتر آخر است بنابراین خروجی شما بصورت de است . یا برای مثال یک نمونه دیگر :
$rest = substr("abcdef", 2, -1); // returns "cde"
در این حالت رشته شما از کاراکتر با اندیس 2 یعنی حرف c شروع خواهد شد و چون عدد انتهایی -1 است حرف f چاپ نخواهد شد و نقطه توقف رشته شما حرف -1 است پس قبل از حرف f یعنی حرف e چاپ خواهد شد . اما یک مثال دیگر :
$rest = substr("abcdef", -3, 1); // returns "d"
در این مثال نقطه شروع اندیس -3 است یعنی حرف d و چون تنها 1 کاراکتر باتوجه به پارامتر دوم پیمایش خواهد شد پس تنها حرف d چاپ خواهد شد . اما یک مثال دیگر :
echo substr('abcdef', 0, 8); // abcdef
در این مثال نقطه شروع شما 0 است یعنی از ابتدای رشته شروع به پیمایش خواهد شد . باتوجه به اینکه طول رشته 6 کاراکتر است ، اما پارامتر دوم برابر با 8 است ( یعنی از طول رشته بیشتر است ) پس مشکلی وجود نخواهد داشت و تمام رشته چاپ خواهد شد لذا این کد درست است . یک مثال نهایی دیگر خدمتتان ارائه میکنیم :
$rest = substr("abcdef", 4, -4);
با توجه به طول رشته و عدد وارد شده در پارامتر دوم ، این تابع خروجی مدنظر را نخواهد داشت و در نسخه 8 پی اچ پی ، مقدار false بازگشت داده خواهد شد . تمام عملکرد این تابع بدین صورت است اما باید توجه داشته باشید که شما چه زمانی به این تابع نیاز دارید و در چه مواقعی باید از مقادیر مثبت یا منفی استفاده کنیم !
ازجمله بخشهایی که میتوانید از تابع substr استفاده کنید ، برای نمایش مختصر شرح مطلب یا همان چکیده است . برای ایجاد بخش چیکده میتوانید تعداد کاراکترهایی که قصد دارید تا نمایش دهید را توسط این تابع فیلتر کنید . امیدواریم این تابع برای شما کاربردی بوده باشد .
سلام و عرض ادب آموزش تمامی این موارد در دوره نابغه php خدمتتون ارائه شده