/** * Finds first occurrence of a string within another. * @param string $haystack The string from which to get the first occurrence. * @param mixed $needle The string to be found. * @param bool $before_needle (optional) Determines which portion of $haystack this function returns. The default value is FALSE. * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. * @return mixed Returns the portion of $haystack, or FALSE if $needle is not found. * Notes: * If $needle is not a string, it is converted to an integer and applied as the ordinal value (codepoint if the encoding is UTF-8) of a character. * If $before_needle is set to TRUE, the function returns all of $haystack from the beginning to the first occurrence of $needle. * If $before_needle is set to FALSE, the function returns all of $haystack from the first occurrence of $needle to the end. * This function is aimed at replacing the functions strstr() and mb_strstr() for human-language strings. * @link http://php.net/manual/en/function.strstr * @link http://php.net/manual/en/function.mb-strstr */ function api_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return Utf8::strstr($haystack, $needle, $before_needle); }
/** * @covers Patchwork\Utf8::strstr * @covers Patchwork\Utf8::stristr * @covers Patchwork\Utf8::strrchr * @covers Patchwork\Utf8::strrichr */ function testStrstr() { $this->assertSame('éjàdéjà', u::strstr('déjàdéjà', 'é')); $this->assertSame('ÉJÀDÉJÀ', u::stristr('DÉJÀDÉJÀ', 'é')); $this->assertSame('ςσb', u::stristr('aςσb', 'ΣΣ')); $this->assertSame('éjà', u::strrchr('déjàdéjà', 'é')); $this->assertSame('ÉJÀ', u::strrichr('DÉJÀDÉJÀ', 'é')); $this->assertSame('d', u::strstr('déjàdéjà', 'é', true)); $this->assertSame('D', u::stristr('DÉJÀDÉJÀ', 'é', true)); $this->assertSame('a', u::stristr('aςσb', 'ΣΣ', true)); $this->assertSame('déjàd', u::strrchr('déjàdéjà', 'é', true)); $this->assertSame('DÉJÀD', u::strrichr('DÉJÀDÉJÀ', 'é', true)); $this->assertSame('Paris', u::stristr('der Straße nach Paris', 'Paris')); }
/** * Find the first occurrence of a string in another string * * @param string $haystack * @param string $needle * * @return string * * @deprecated Deprecated since Contao 4.0, to be removed in Contao 5.0. * Use Patchwork\Utf8::strstr() instead. */ function utf8_strstr($haystack, $needle) { @trigger_error('Using utf8_strstr() has been deprecated and will no longer work in Contao 5.0. Use Patchwork\\Utf8::strstr() instead.', E_USER_DEPRECATED); return Utf8::strstr($haystack, $needle); }