* @copyright 2010 Luracast * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link http://luracast.com/products/restler/ * */ class Text { /** * 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; } // @CHANGE LDR if (!is_string($haystack)) return false; 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])/', '/([_-])/', '/[^a-zA-Z0-9\s]|\s\s+/'), array(' $0', ' $0', ' ', ' '), $name ) ); } /** * Convert given string to be used as a slug or css class * * @param string $name * @return string */ public static function slug($name) { return preg_replace('/[^a-zA-Z]+/', '-', strtolower(strip_tags($name))); } }