CodeBox
October 17th, 2019, 12:06
https://redup.ir/img.php?image=5858_php_string_functions_rjl6.png (https://redup.ir/)
گاهی اوقات نیاز هست تا تعداد تکرار شدن یک زیر رشته (کلمه یا عبارت) را در یک رشته اصلی و بزرگ تر بررسی کنیم. در زبان برنامه نویسی 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
?>
گاهی اوقات نیاز هست تا تعداد تکرار شدن یک زیر رشته (کلمه یا عبارت) را در یک رشته اصلی و بزرگ تر بررسی کنیم. در زبان برنامه نویسی 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
?>