public function smart_substr($text, $length = 200, $searchword = '') { $wordpos = joosString::strpos(strtolower($text), joosString::strtolower($searchword)); $halfside = intval($wordpos - $length / 2 - joosString::strlen($searchword)); if ($wordpos && $halfside > 0) { return '...' . joosString::substr($text, $halfside, $length) . '...'; } else { return joosString::substr($text, 0, $length); } }
/** * Вывод нуждной формы слова, в зависимости от пола * * * @tutorial joosText::sexerate( 1, array('умник','умница','умницо') ); * @tutorial joosText::sexerate( 'm', array('делал','делала','делало') ) * * @param string $sex - пол, принимает варианты 1/2, м/ж, m/f. Если вариан отсутствует - то используется 2й элементы неопределённого пола * @param array $texts - 3х элементый массив слов для каждого пола 0-мужской, 1-женский, 2 * @return string */ public static function sexerate($sex, array $texts) { $sex = joosString::strtolower($sex); $sex = strtr($sex, array('м' => 0, 'ж' => 1, 'm' => 0, 'f' => 1, 'муж' => 0, 'жен' => 1, 'male' => 0, 'female' => 1, 'мужчина' => 0, 'женщина' => 1)); return isset($texts[$sex]) ? $texts[$sex] : $texts[2]; }
/** * Проверяет что все символы строки в нижнем регистре * * @param string $value * @return bool результат проверки соответсвия */ public static function is_lower($value) { return $value === joosString::strtolower($value); }