mirror of
https://github.com/danielstjules/Stringy.git
synced 2025-08-14 01:04:06 +02:00
Added $caseSensitive to count()
This commit is contained in:
@@ -184,12 +184,13 @@ S::contains('Ο συγγραφέας είπε', 'συγγραφέας', 'UTF-8')
|
||||
|
||||
#### count
|
||||
|
||||
$stringy->count(string $substring)
|
||||
$stringy->count(string $substring [, boolean $caseSensitive = true ])
|
||||
|
||||
S::count(string $str, string $substring [, string $encoding ])
|
||||
S::count(string $str, string $substring [, boolean $caseSensitive = true [, string $encoding ]])
|
||||
|
||||
Returns the number of occurrences of $substring in the given string. An alias for
|
||||
mb_substr_count()
|
||||
Returns the number of occurrences of $substring in the given string.
|
||||
By default, the comparison is case-sensitive, but can be made insensitive
|
||||
by setting $caseSensitive to false.
|
||||
|
||||
```php
|
||||
S::create('Ο συγγραφέας είπε', 'UTF-8')->count('α');
|
||||
|
@@ -716,16 +716,19 @@ class StaticStringy
|
||||
|
||||
/**
|
||||
* Returns the number of occurrences of $substring in the given string.
|
||||
* An alias for mb_substr_count()
|
||||
* By default, the comparison is case-sensitive, but can be made insensitive
|
||||
* by setting $caseSensitive to false.
|
||||
*
|
||||
* @param string $str The string to search through
|
||||
* @param string $substring The substring to search for
|
||||
* @param string $encoding The character encoding
|
||||
* @param string $str The string to search through
|
||||
* @param string $substring The substring to search for
|
||||
* @param bool $caseSensitive Whether or not to enforce case-sensitivity
|
||||
* @param string $encoding The character encoding
|
||||
* @return int The number of $substring occurrences
|
||||
*/
|
||||
public static function count($str, $substring, $encoding = null)
|
||||
public static function count($str, $substring, $caseSensitive = true,
|
||||
$encoding = null)
|
||||
{
|
||||
return Stringy::create($str, $encoding)->count($substring);
|
||||
return Stringy::create($str, $encoding)->count($substring, $caseSensitive);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1104,13 +1104,22 @@ class Stringy
|
||||
|
||||
/**
|
||||
* Returns the number of occurrences of $substring in the given string.
|
||||
* An alias for mb_substr_count()
|
||||
* By default, the comparison is case-sensitive, but can be made insensitive
|
||||
* by setting $caseSensitive to false.
|
||||
*
|
||||
* @param string $substring The substring to search for
|
||||
* @param string $substring The substring to search for
|
||||
* @param bool $caseSensitive Whether or not to enforce case-sensitivity
|
||||
* @return int The number of $substring occurrences
|
||||
*/
|
||||
public function count($substring)
|
||||
public function count($substring, $caseSensitive = true)
|
||||
{
|
||||
if (!$caseSensitive) {
|
||||
$str = mb_strtoupper($this->str, $this->encoding);
|
||||
$substring = mb_strtoupper($substring, $this->encoding);
|
||||
|
||||
return mb_substr_count($str, $substring, $this->encoding);
|
||||
}
|
||||
|
||||
return mb_substr_count($this->str, $substring, $this->encoding);
|
||||
}
|
||||
|
||||
|
@@ -907,7 +907,14 @@ abstract class CommonTest extends PHPUnit_Framework_TestCase
|
||||
array(0, '', 'fòô', 'UTF-8'),
|
||||
array(0, 'fòô', 'bàř', 'UTF-8'),
|
||||
array(1, 'fòô bàř', 'fòô', 'UTF-8'),
|
||||
array(2, 'fôòô bàř', 'ô', 'UTF-8')
|
||||
array(2, 'fôòô bàř', 'ô', 'UTF-8'),
|
||||
array(0, 'fÔÒÔ bàř', 'ô', 'UTF-8'),
|
||||
array(0, 'foo', 'BAR', false),
|
||||
array(1, 'foo bar', 'FOo', false),
|
||||
array(2, 'foo bar', 'O', false),
|
||||
array(1, 'fòô bàř', 'fÒÔ', false, 'UTF-8'),
|
||||
array(2, 'fôòô bàř', 'Ô', false, 'UTF-8'),
|
||||
array(2, 'συγγραφέας', 'Σ', false, 'UTF-8')
|
||||
);
|
||||
|
||||
return $testData;
|
||||
|
@@ -554,9 +554,10 @@ class StaticStringyTestCase extends CommonTest
|
||||
/**
|
||||
* @dataProvider stringsForCount
|
||||
*/
|
||||
public function testCount($expected, $str, $substring, $encoding = null)
|
||||
public function testCount($expected, $str, $substring, $caseSensitive = true,
|
||||
$encoding = null)
|
||||
{
|
||||
$result = S::count($str, $substring, $encoding);
|
||||
$result = S::count($str, $substring, $caseSensitive, $encoding);
|
||||
$this->assertInternalType('int', $result);
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
@@ -653,10 +653,11 @@ class StringyTestCase extends CommonTest
|
||||
/**
|
||||
* @dataProvider stringsForCount
|
||||
*/
|
||||
public function testCount($expected, $str, $substring, $encoding = null)
|
||||
public function testCount($expected, $str, $substring, $caseSensitive = true,
|
||||
$encoding = null)
|
||||
{
|
||||
$stringy = S::create($str, $encoding);
|
||||
$result = $stringy->count($substring);
|
||||
$result = $stringy->count($substring, $caseSensitive);
|
||||
$this->assertInternalType('int', $result);
|
||||
$this->assertEquals($expected, $result);
|
||||
$this->assertEquals($str, $stringy);
|
||||
|
Reference in New Issue
Block a user