* @copyright 2010 Luracast * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link http://luracast.com/products/restler/ */ class String { /** * Given haystack contains the needle or not? * * @param string $haystack * @param string $needle * @param bool $caseSensitive * * @return bool */ public static function contains($haystack, $needle, $caseSensitive = true) { if (empty($needle)) return true; return $caseSensitive ? strpos($haystack, $needle) !== false : stripos($haystack, $needle) !== false; } /** * Given haystack begins with the needle or not? * * @param string $haystack * @param string $needle * * @return bool */ public static function beginsWith($haystack, $needle) { $length = strlen($needle); return (substr($haystack, 0, $length) === $needle); } /** * Given haystack ends with the needle or not? * * @param string $haystack * @param string $needle * * @return bool */ public static function endsWith($haystack, $needle) { $length = strlen($needle); if ($length == 0) { return true; } return (substr($haystack, -$length) === $needle); } /** * Convert camelCased or underscored string in to a title * * @param string $name * * @return string */ public static function title($name) { return ucwords( preg_replace( array('/(?<=[^A-Z])([A-Z])/', '/(?<=[^0-9])([0-9])/', '/(_)/'), array(' $0', ' $0', ' '), $name ) ); } }