mirror of
https://github.com/danielstjules/Stringy.git
synced 2025-08-11 07:44:12 +02:00
Add toSpaces() and toTabs()
This commit is contained in:
29
README.md
29
README.md
@@ -22,6 +22,8 @@ A PHP library with a variety of string manipulation functions with multibyte sup
|
|||||||
* [padBoth](#padboth)
|
* [padBoth](#padboth)
|
||||||
* [startsWith](#startswith)
|
* [startsWith](#startswith)
|
||||||
* [endsWith](#endswith)
|
* [endsWith](#endswith)
|
||||||
|
* [toSpaces](#tospaces)
|
||||||
|
* [toTabs](#totabs)
|
||||||
* [Tests](#tests)
|
* [Tests](#tests)
|
||||||
* [License](#license)
|
* [License](#license)
|
||||||
|
|
||||||
@@ -265,12 +267,31 @@ by setting $caseSensitive to false.
|
|||||||
S::endsWith('FÒÔ bàřs', 'àřs', true, 'UTF-8'); // true
|
S::endsWith('FÒÔ bàřs', 'àřs', true, 'UTF-8'); // true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### toSpaces
|
||||||
|
|
||||||
|
S::toSpaces(string $str, [, int $tabLength = 4 ])
|
||||||
|
|
||||||
|
Converts each tab in a string to some number of spaces, as defined by
|
||||||
|
$tabLength. By default, each tab is converted to 4 consecutive spaces.
|
||||||
|
|
||||||
|
```php
|
||||||
|
S:::toSpaces(' String speech = "Hi"') \\ ' String speech = "Hi"'
|
||||||
|
```
|
||||||
|
|
||||||
|
##### toTabs
|
||||||
|
|
||||||
|
S::toTabs(string $str, [, int $tabLength = 4 ])
|
||||||
|
|
||||||
|
Converts each occurence of some consecutive number of spaces, as defined
|
||||||
|
by $tabLength, to a tab. By default, each 4 consecutive spaces are
|
||||||
|
converted to a tab.
|
||||||
|
|
||||||
|
```php
|
||||||
|
S:::toTabs(" fòô bàř") \\ " fòô bàř"
|
||||||
|
```
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
**toSpaces**
|
|
||||||
|
|
||||||
**toTabs**
|
|
||||||
|
|
||||||
**toAnchor**
|
**toAnchor**
|
||||||
|
|
||||||
**slugify**
|
**slugify**
|
||||||
|
@@ -421,6 +421,35 @@ class Stringy {
|
|||||||
return $substring === $endOfStr;
|
return $substring === $endOfStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts each tab in a string to some number of spaces, as defined by
|
||||||
|
* $tabLength. By default, each tab is converted to 4 consecutive spaces.
|
||||||
|
*
|
||||||
|
* @param string $str String to convert tabs to spaces
|
||||||
|
* @param int $tabLength Number of spaces to replace each tab with
|
||||||
|
* @return string String with tabs switched to spaces
|
||||||
|
*/
|
||||||
|
public static function toSpaces($str, $tabLength = 4) {
|
||||||
|
$spaces = str_repeat(' ', $tabLength);
|
||||||
|
|
||||||
|
return str_replace("\t", $spaces, $str);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts each occurence of some consecutive number of spaces, as defined
|
||||||
|
* by $tabLength, to a tab. By default, each 4 consecutive spaces are
|
||||||
|
* converted to a tab.
|
||||||
|
*
|
||||||
|
* @param string $str String to convert spaces to tabs
|
||||||
|
* @param int $tabLength Number of spaces to replace with a tab
|
||||||
|
* @return string String with spaces switched to tabs
|
||||||
|
*/
|
||||||
|
public static function toTabs($str, $tabLength = 4) {
|
||||||
|
$spaces = str_repeat(' ', $tabLength);
|
||||||
|
|
||||||
|
return str_replace($spaces, "\t", $str);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@@ -444,6 +444,47 @@ class StringyTestCase extends PHPUnit_Framework_TestCase {
|
|||||||
return $testData;
|
return $testData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider stringsForToSpaces
|
||||||
|
*/
|
||||||
|
public function testToSpaces($expected, $string, $tabLength = 4) {
|
||||||
|
$result = S::toSpaces($string, $tabLength);
|
||||||
|
$this->assertEquals($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stringsForToSpaces() {
|
||||||
|
$testData = array(
|
||||||
|
array(' foo bar ', ' foo bar '),
|
||||||
|
array(' foo bar ', ' foo bar ', 5),
|
||||||
|
array(' foo bar ', ' foo bar ', 2),
|
||||||
|
array('foobar', ' foo bar ', 0),
|
||||||
|
array(" foo\n bar", " foo\n bar"),
|
||||||
|
array(" fòô\n bàř", " fòô\n bàř")
|
||||||
|
);
|
||||||
|
|
||||||
|
return $testData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider stringsForToTabs
|
||||||
|
*/
|
||||||
|
public function testToTabs($expected, $string, $tabLength = 4) {
|
||||||
|
$result = S::toTabs($string, $tabLength);
|
||||||
|
$this->assertEquals($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stringsForToTabs() {
|
||||||
|
$testData = array(
|
||||||
|
array(' foo bar ', ' foo bar '),
|
||||||
|
array(' foo bar ', ' foo bar ', 5),
|
||||||
|
array(' foo bar ', ' foo bar ', 2),
|
||||||
|
array(" foo\n bar", " foo\n bar"),
|
||||||
|
array(" fòô\n bàř", " fòô\n bàř")
|
||||||
|
);
|
||||||
|
|
||||||
|
return $testData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Reference in New Issue
Block a user