/**
 * Finds the last occurrence of a character in a string.
 * @param string $haystack					The string from which to get the last occurrence.
 * @param mixed $needle						The string which first character is 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 the first character from $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.
 * If $before_needle is set to FALSE, the function returns all of $haystack from the first occurrence to the end.
 * This function is aimed at replacing the functions strrchr() and mb_strrchr() for human-language strings.
 * @link http://php.net/manual/en/function.strrchr
 * @link http://php.net/manual/en/function.mb-strrchr
 */
function api_strrchr($haystack, $needle, $before_needle = false, $encoding = null)
{
    return Utf8::strrchr($haystack, $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'));
 }
Example #3
0
/**
 * Find the last occurrence of a character in a 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::strrchr() instead.
 */
function utf8_strrchr($haystack, $needle)
{
    @trigger_error('Using utf8_strrchr() has been deprecated and will no longer work in Contao 5.0. Use Patchwork\\Utf8::strrchr() instead.', E_USER_DEPRECATED);
    return Utf8::strrchr($haystack, $needle);
}