-
October 17th, 2019, 12:06
#1
عضو انجمن
شمارش تعداد تکرار زیر رشته در رشته با 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
?>
codebox.ir | تلفن: ٠٢١-٩١٦٩٠٤٢١ | آدرس : شیراز، شهرک خبازان، خیابان شهید سعید ماهر، دفتر کدباکس
ما را دنبال کنید: ID : @codebox_ir
-
-
October 17th, 2019 12:06
# ADS