diff --git a/StringTools.php b/StringTools.php index 8320f84..a12085e 100644 --- a/StringTools.php +++ b/StringTools.php @@ -56,4 +56,18 @@ public static function removeStart($str, $toRemove) return mb_substr($str, mb_strlen($toRemove)); } + + /** + * @param string $str The string that should contains the needle + * @param string $needle What should be contained + * @return bool + */ + public static function contains($str, $needle) + { + $position = strpos($str, $needle); + if ($position === 0) { + return true; + } + return (bool) $position; + } } diff --git a/spec/Nekland/Tools/StringToolsSpec.php b/spec/Nekland/Tools/StringToolsSpec.php index 8403d9e..f0cea53 100644 --- a/spec/Nekland/Tools/StringToolsSpec.php +++ b/spec/Nekland/Tools/StringToolsSpec.php @@ -50,4 +50,22 @@ function it_should_remove_the_start_of_a_string() $this::removeStart('Foo bar baz', 'Foo')->shouldReturn(' bar baz'); $this::removeStart('YOLOOOsgs gs gsg sggs g', 'g')->shouldReturn('YOLOOOsgs gs gsg sggs g'); } + + function it_should_contain_str() + { + $this::contains('PHP Test India vous êtes accepté', 'accepté')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'êtes accepté')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'vous êtes accepté')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'Test India vous êtes accepté')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'PHP')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'PHP Test India vous êtes accepté')->shouldReturn(true); + $this::contains('PHP Test India vous êtes accepté', 'coucou le test')->shouldReturn(false); + $this::contains('PHP Test India vous êtes accepté', 'PHP Test India vous êtes accepte')->shouldReturn(false); + $this::contains('PHP Test India vous êtes accepté', 'PHP Test India vous êtes refusé')->shouldReturn(false); + $this::contains('PHP Test India vous êtes accepté', 'Lorem Ipsum vous êtes accepté')->shouldReturn(false); + $this::contains('PHP Test India vous êtes accepté', 'Lorem Ipsum vous êtes refusé')->shouldReturn(false); + $this::contains('Theres nothing to see here', 'there there')->shouldReturn(false); + $this::contains('Hello everybody, how are you today ? :)', 'everybody, how')->shouldReturn(true); + $this::contains('Hello world ! =)', '.+')->shouldReturn(false); + } }