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

در هنگام برنامه نویسی برنامه های مختلف، رشته ها (String) کاربردهای بسیار زیاد و غیر قابل انکاری دارند. برای کار با رشته ها در زبان برنامه نویسی PHP، توابع قوی و بسیاری وجود دارند که آنالیز و ایجاد تغییرات در رشته ها رو برای ما آسان تر کرده اند.

زیر رشته در php

 

در این مقاله قصد داریم با زیر رشته ها در PHP کار کنیم.

زیر رشته یا Sub String چیست ؟

همونطور که از اسمش مشخص هست، زیر رشته یعنی یک رشته یا string که زیر مجموعه رشته دیگری هست! فرض کنید یک عبارت خیلی ساده انگلیسی برای خوش آمد گویی به کاربرانمون، مشابه زیر داریم.

 

از داخل رشته بالا هر زیر مجموعه ای که یک رشته به حساب بیار رو میتونیم به عنوان یک زیر رشته در نظر بگیریم. در هر خط زیر یک SubString از رشته بالا رو میبینید:

 

و هر ترکیب (ترتیب دار) دیگه…!

 

ساخت زیر رشته از رشته در PHP

برای ایجاد یک زیر رشته از رشته مورد نظرمون، میتونیم از تابع substr در زبان برنامه نویسی PHP استفاده کنیم. تابع substr() برای استخراج بخشی از یک رشته استفاده میشه.

ساختار کلی تابع substr

این تابع سه ورودی میگیره که دو تای اولی اجباری و پارامتر سوم به صورت اختیاری هست.

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

 

ورودی های تابع

اولین ورودی (STRING) همان رشته اصلی ماست که میخواهیم از آن یک زیررشته ایجاد کنیم. این پارامتر اجباری بوده و ورودی آن میتواند از یک کاراکتر تا رشته ای طولانی باشد.

ورودی دوم (START) مشخص کننده ایندکس شروع زیر رشته است. یعنی زیر رشته نهایی از کجای رشته فعلی می بایست شروع شود. همانطور که میدانید شمارش خانه های ایندکس رشته در PHP از شماره ۰ شروع شده و تا یکی کمتر از اندازه رشته ادامه می یابد.

نوع این آرگومان یک عدد صحیح هست. اگر مقدار مثبت تعریف شود، شمارش خانه ایندکس از ابتدای رشته آغاز میشود و اگر مقدار آن منفی باشد، شمارش از انتهای رشته اصلی انجام میشود.

ورودی سوم (LENGTH) مشخص کننده طول زیر رشته مورد نظر می باشد. با مشخص کردن این مقدار، به تابع می فهمانیم که زیر رشته نهایی که از ایندکس START شروع شده تا چه اندازه یا تا کجای رشته اصلی ادامه خواهد داشت.

این مقدار میتواند مثبت، منفی و حتی صفر (یا FALSE و NULL) باشد.

اگر مقدار آن مقداری مثبت باشد، مشخص کننده طول زیر رشته خواهد بود. به عنوان مثال، فرض کنید متغیر شروع، ایندکس ۲ بوده و مقدار طول زیر رشته ۵ است. رشته نهایی از ایندکس شماره ۲ رشته اصلی شروع شده و تا ایندکس ۶ (حاصل مجموع دو مقدار منهای یک: ۲+۵-۱) ادامه می یابد.

 

اگر مقدار آن مقداری منفی بود، به این معنی است که انتهای زیر رشته می بایست تا کاراکتری با ایندکس مقدار منفی داده شده ادامه پیدا کند.

 

اگر مقدار این ورودی صفر، FALSE یا NULL باشد، زیر رشته نهایی خالی است. (فقط یک رشته خالی تولید میکنیم!)

 

همانطور که گفته شد، آرگومان سوم این تابع، اختیاری است. اگر این آرگومان تعریف نشود، از ایندکس تعیین شده تا انتهای رشته، به عنوان زیر رشته نهایی خروجی داده خواهد شد.

 

 

شمارش تعداد تکرار زیر رشته در رشته با PHP

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

ساختار کلی تابع substr_count

این تابع دارای چهار ورودی است که دو ورودی اول آن اجباری و دو ورودی دیگر اختیاری است.

 

آرگومان های تابع

آرگومان اول (STRING) همان رشته اصلی است که میخواهیم تعداد تکرار زیر رشته مورد نظر خود را در آن به دست آوریم.

دومین ورودی (SUBSTR) همان زیر رشته مورد نظر ماست که میتواند از یک کاراکتر تا رشته ای طولانی تر باشد.

ورودی سوم (START) یک آرگومان اختیاری است. با تعریف این ورودی مشخص میکنیم که میخواهیم عملیات جستجو و شمارش از ایندکس مشخصی از رشته اصلی آغاز شود.

چارمین آرگومان (LEN) نیز یک ورودی اختیاری است و با وجود ورودی قبلی معنا پیدا میکند. با تعریف این ورودی مشخص میکنیم که عملیات جستجو از موقعیت START شروع شده و در موقعیت START + LEN پایان یابد.

توجه داشته باشید، در صورتی که مجموع مقدار موقعیت شروع و اندازه بیشتر از طول رشته اصلی شود، با خطا یا هشدار مواجه خواهید شد!

 

حالات مختلف صدا زدن تابع substr_count

همانطور که حدس زده اید، سه حالت مختلف برای صدا زدن این تابع با رشته و زیر رشته مورد نظرمان وجود دارد:

۱- تعریف دو آرگومان اول : با تعریف رشته اصلی (STRING) و زیر رشته (SUBSTR)، تعداد تکرار زیر رشته در تمام طول رشته اصلی شمارش شده و به عنوان خروجی به ما داده میشود.

 

۲- تعریف دو آرگومان اجباری به همراه آرگومان سوم : در اینصورت ابتدا زیر رشته ای با موقعیت شروع داده شده تا پایان رشته ایجاد شده و سپس عملیات شمارش تکرار انجام میشود.

به بیانی ساده تر، ابتدا رشته اصلی، خود یک زیر رشته شده و به عنوان رشته اصلی شناخته میشود. سپس عملیات شمارش روی رشته اصلی جدید و با زیر رشته ورودی ما انجام خواهد شد.

 

در قطعه کد بالا، در دومین بار فراخوانی، چون زیر رشته حاصل شده از رشته اصلی عبارت “test message” است، رشته “is” هیچ بار استفاده و تکرار نشده است.

 

۳- استفاده از هر چهار آرگومان : در این حالت نیز، مشابه مورد قبلی، ابتدای زیر رشته ای از رشته اصلی ایجاد شده و عملیات شمارش بر روی آن انحام میشود. با این تفاوت که زیر رشته جدید ایجاد شده از موقعیت START و به طور LEN خواهد بود.

 

 

در به روز رسانی های آینده این مقاله، به بررسی توابعی برای مقایسه زیر رشته ها و جایگزینی زیر رشته ها خواهیم پرداخت.



[ برچسب ها ] : , , , , ,
ارسال شده در : بخش کامپیوتر
نظر شما در مورد اين پست چيست ؟

دیدگاه خود را به ما بگویید.

 
 
  دکتری تخصصی برق الکترونیک
طراح مدارهای الکترونیکی
برنامه نویس انواع میکروها
مشاوره و اجرای لینک های وایرلس
پیاده سازی سیستم های مبتنی بر شبکه
E_mail: electronic@sabzelco.ir
Tel: 09150462401
توسعه دهنده برنامه های سمت سرور

طراحی و برنامه نویسی سایت و پرتال های حرفه ای

E_mail: computer@sabzelco.ir
Tel: 09371974233