1
0
mirror of https://github.com/danielstjules/Stringy.git synced 2025-08-13 16:53:59 +02:00

Cleanup and merge branch 'isserialized'

This commit is contained in:
Daniel St. Jules
2013-08-31 18:23:51 -04:00
6 changed files with 75 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ A PHP library with a variety of string manipulation functions with multibyte sup
* [isBlank](#isblank)
* [isHexadecimal](#ishexadecimal)
* [isLowerCase](#islowercase)
* [isSerialized](#isserialized)
* [isUpperCase](#isuppercase)
* [last](#last)
* [length](#length)
@@ -364,6 +365,19 @@ S::create('fòô bàř', 'UTF-8')->isLowerCase();
S::isLowerCase('fòô bàř', 'UTF-8'); // true
```
#### isSerialized
$stringy->isSerialized()
S::isSerialized(string $str [, string $encoding ])
Returns true if the string is serialized, false otherwise.
```php
S::create('a:1:{s:3:"foo";s:3:"bar";}', 'UTF-8')->isSerialized();
S::isSerialized('a:1:{s:3:"foo";s:3:"bar";}', 'UTF-8'); // true
```
#### isUpperCase
$stringy->isUpperCase()
@@ -373,8 +387,8 @@ S::isUpperCase(string $str [, string $encoding ])
Returns true if the string contains only upper case chars, false otherwise.
```php
S::create('FÒÔBÀŘ',, 'UTF-8')->isUpperCase();
S::isUpperCase('FÒÔBÀŘ',, 'UTF-8'); // true
S::create('FÒÔBÀŘ', 'UTF-8')->isUpperCase();
S::isUpperCase('FÒÔBÀŘ', 'UTF-8'); // true
```
#### last

View File

@@ -636,6 +636,18 @@ class StaticStringy
return Stringy::create($str, $encoding)->isLowerCase();
}
/**
* Returns true if the string is serialized, false otherwise.
*
* @param string $str String to check
* @param string $encoding The character encoding
* @return bool Whether or not $str is serialized
*/
public static function isSerialized($str, $encoding = null)
{
return Stringy::create($str, $encoding)->isSerialized();
}
/**
* Returns true if the string contains only upper case chars, false otherwise.
*

View File

@@ -1022,6 +1022,16 @@ class Stringy
return $this->matchesPattern('^([[:upper:]])*$');
}
/**
* Returns true if the string is serialized, false otherwise.
*
* @return bool Whether or not $str is serialized
*/
public function isSerialized()
{
return $this->str === 'b:0;' || @unserialize($this->str) !== false;
}
/**
* Returns the number of occurrences of $substring in the given string.
* An alias for mb_substr_count()

View File

@@ -782,6 +782,21 @@ abstract class CommonTest extends PHPUnit_Framework_TestCase
return $testData;
}
public function stringsForIsSerialized()
{
$testData = array(
array(false, ''),
array(true, 'a:1:{s:3:"foo";s:3:"bar";}'),
array(false, 'a:1:{s:3:"foo";s:3:"bar"}'),
array(true, serialize(array('foo' => 'bar'))),
array(true, 'a:1:{s:5:"fòô";s:5:"bàř";}', 'UTF-8'),
array(false, 'a:1:{s:5:"fòô";s:5:"bàř"}', 'UTF-8'),
array(true, serialize(array('fòô' => 'bár')), 'UTF-8'),
);
return $testData;
}
public function stringsForIsUpperCase()
{
$testData = array(

View File

@@ -482,6 +482,16 @@ class StaticStringyTestCase extends CommonTest
$this->assertEquals($expected, $result);
}
/**
* @dataProvider stringsForIsSerialized
*/
public function testIsSerialized($expected, $str, $encoding = null)
{
$result = S::isSerialized($str, $encoding);
$this->assertInternalType('boolean', $result);
$this->assertEquals($expected, $result);
}
/**
* @dataProvider stringsForIsUpperCase
*/

View File

@@ -568,6 +568,18 @@ class StringyTestCase extends CommonTest
$this->assertEquals($str, $stringy);
}
/**
* @dataProvider stringsForIsSerialized
*/
public function testIsSerialized($expected, $str, $encoding = null)
{
$stringy = S::create($str, $encoding);
$result = $stringy->isSerialized();
$this->assertInternalType('boolean', $result);
$this->assertEquals($expected, $result);
$this->assertEquals($str, $stringy);
}
/**
* @dataProvider stringsForIsUpperCase
*/