شمارش تعداد تکرار زیر رشته در رشته با php
	
	
		
گاهی اوقات نیاز هست تا تعداد تکرار شدن یک زیر رشته (کلمه یا عبارت) را در یک رشته اصلی و بزرگ تر بررسی کنیم. در زبان برنامه نویسی PHP تابعی مستقل، به نام substr_count() برای این منظور استفاده میشود.
  ساختار کلی تابع substr_count
این تابع دارای چهار ورودی است که دو ورودی اول آن اجباری و دو ورودی دیگر اختیاری است.
	کد:
	
substr_count($STRING, $SUBSTR, $START, $LEN)
 
 آرگومان های تابع
 
- آرگومان اول (STRING) همان رشته اصلی است که میخواهیم تعداد تکرار زیر رشته مورد نظر خود را در آن به دست آوریم.
 - دومین ورودی (SUBSTR) همان زیر رشته مورد نظر ماست که میتواند از یک کاراکتر تا رشته ای طولانی تر باشد.
 - ورودی سوم (START) یک آرگومان اختیاری است. با تعریف این ورودی مشخص میکنیم که میخواهیم عملیات جستجو و شمارش از ایندکس مشخصی از رشته اصلی آغاز شود.
 - چارمین آرگومان (LEN)  نیز یک ورودی اختیاری است و با وجود ورودی قبلی معنا پیدا میکند. با تعریف  این ورودی مشخص میکنیم که عملیات جستجو از موقعیت START شروع شده و در  موقعیت START + LEN پایان یابد. 
 
 توجه داشته باشید، در صورتی که مجموع مقدار موقعیت شروع و اندازه بیشتر از طول رشته اصلی شود، با خطا یا هشدار مواجه خواهید شد!
  
  حالات مختلف صدا زدن تابع substr_count
 همانطور که حدس زده اید، سه حالت مختلف برای صدا زدن این تابع با رشته و زیر رشته مورد نظرمان وجود دارد:
 1- تعریف دو آرگومان اول : با  تعریف رشته اصلی (STRING) و زیر رشته (SUBSTR)، تعداد تکرار زیر رشته در  تمام طول رشته اصلی شمارش شده و به عنوان خروجی به ما داده میشود.
	کد:
	
<?php
    $str = "Welcome Dear Users! This is a test message.";
    $substr = "es";
    echo substr_count($str, $substr); // 2
?>
 2- تعریف دو آرگومان اجباری به همراه آرگومان سوم : در اینصورت ابتدا زیر رشته ای با موقعیت شروع داده شده تا پایان رشته ایجاد شده و سپس عملیات شمارش تکرار انجام میشود.
 به بیانی ساده تر، ابتدا رشته اصلی، خود یک زیر رشته شده و به عنوان  رشته اصلی شناخته میشود. سپس عملیات شمارش روی رشته اصلی جدید و با زیر  رشته ورودی ما انجام خواهد شد.
	کد:
	
<?php
    $str = "Welcome Dear Users! This is a test message.";
    $substr = "is";
    echo substr_count($str, $substr, 15); // 2
    echo substr_count($str, $substr, 30); // 0
?>
 در قطعه کد بالا، در دومین بار فراخوانی، چون زیر رشته حاصل شده از رشته  اصلی عبارت “test message” است، رشته “is” هیچ بار استفاده و تکرار نشده  است.
  
 3- استفاده از هر چهار آرگومان :  در این حالت نیز، مشابه مورد قبلی، ابتدای زیر رشته ای از رشته اصلی ایجاد  شده و عملیات شمارش بر روی آن انحام میشود. با این تفاوت که زیر رشته جدید  ایجاد شده از موقعیت START و به طور LEN خواهد بود.
	کد:
	
<?php
    $str = "Welcome Dear Users! This is a test message.";
    $substr = " "; // space STRING
    echo substr_count($str, $substr); // 7
    echo substr_count($str, $substr, 15); // 5
    echo substr_count($str, $substr, 15, 8); // 1
?>