/** * 2015-12-16 * Вычленяет «700» из «700italic» * @return string */ private function variantNumber() { if (!isset($this->{__METHOD__})) { $this->{__METHOD__} = df_nts(df_preg_match_int('#\\d+#', $this->variant(), false)); } return $this->{__METHOD__}; }
/** * @param string|string[] $text * @param string $charlist [optional] * @return string|string[] */ public function trim($text, $charlist = null) { /** @var string|string $result */ if (is_array($text)) { $result = df_map([$this, __FUNCTION__], $text, $charlist); } else { if (!is_null($charlist)) { /** @var string[] $addionalSymbolsToTrim */ $addionalSymbolsToTrim = ["\n", "\r", ' ']; foreach ($addionalSymbolsToTrim as $addionalSymbolToTrim) { /** @var string $addionalSymbolToTrim */ if (!df_contains($charlist, $addionalSymbolToTrim)) { $charlist .= $addionalSymbolToTrim; } } } /** * Обратите внимание, что класс Zend_Filter_StringTrim может работать некорректно * для строк, заканчивающихся заглавной кириллической буквой «Р». * http://framework.zend.com/issues/browse/ZF-11223 * Однако решение, которое предложено по ссылке выше * (http://framework.zend.com/issues/browse/ZF-11223) * может приводить к падению интерпретатора PHP * для строк, начинающихся с заглавной кириллической буквы «Р». * Такое у меня происходило в методе @see Df_Autotrading_Model_Request_Locations::parseLocation() * Кто виноват: решение или исходный класс @see Zend_Filter_StringTrim — не знаю * (скорее, решение). * Поэтому мой класс @see \Df\Zf\Filter\StringTrim дополняет решение по ссылке выше * программным кодом из Zend Framework 2.0. */ /** @var \Df\Zf\Filter\StringTrim $filter */ $filter = new \Df\Zf\Filter\StringTrim($charlist); $result = $filter->filter($text); /** * @see Zend_Filter_StringTrim::filter() теоретически может вернуть null, * потому что этот метод зачастую перепоручает вычисление результата функции @uses preg_replace() * @url http://php.net/manual/function.preg-replace.php */ $result = df_nts($result); // Как ни странно, Zend_Filter_StringTrim иногда выдаёт результат « ». if (' ' === $result) { $result = ''; } } return $result; }