예제 #1
0
 function isTriggered()
 {
     if (!isset($this->data['text'])) {
         $this->printUsage();
         return;
     }
     $this->reply(mb_strrev($this->data['text']));
 }
예제 #2
0
 function isPalindrom($str)
 {
     $str = mb_strtolower($str);
     $str = str_replace(' ', '', $str);
     if (strncasecmp($str, mb_strrev($str), ceil(strlen($str) / 2)) === 0) {
         return true;
     } else {
         return false;
     }
 }
 function test_mb_strrev()
 {
     $this->assertEquals('öäå', mb_strrev('åäö'));
     $this->assertEquals('öäÅ', mb_strrev('Åäö'));
     $this->assertEquals(strrev('bobby'), mb_strrev('bobby'));
 }
예제 #4
0
 /**
  * Converts large numbers: 1000+.
  * 
  * @access private
  * @param int $number
  * @return string
  * @static
  */
 private static function __convertMultiples($number)
 {
     $numrev = mb_strrev($number);
     $parts = str_split($numrev, 3);
     $cur = 1;
     $newParts = array();
     foreach ($parts as $index => $part) {
         $ret = self::__convert(mb_strrev($part));
         if ($index > 0 && $part != '000') {
             $ret .= self::$sep . self::$exponents[$cur];
         }
         if ($ret != '') {
             $newParts[$index] = $ret;
         }
         $cur++;
     }
     $parts = array_reverse($newParts);
     $return = implode(', ', $parts);
     return $return;
 }
예제 #5
0
 /**
  * This method reverses the order of the items in this string.
  *
  * @access public
  * @static
  * @param IString\Type $xs                                  the left operand
  * @return IString\Type                                     the string
  */
 public static function reverse(IString\Type $xs) : IString\Type
 {
     return IString\Type::box(mb_strrev($xs->unbox(), IChar\Type::UTF_8_ENCODING));
 }
 function marketSummary($str, $length = 175)
 {
     $delimiter = mb_strpos($str, '<!--break-->');
     if ($delimiter !== false) {
         return mb_substr($str, 0, $delimiter);
     }
     if (mb_strlen($str) <= $length) {
         return $str;
     }
     $summary = mb_substr($str, 0, $length);
     $max_rpos = mb_strlen($summary);
     $min_rpos = $max_rpos;
     $reversed = mb_strrev($summary);
     $break_points = array();
     $break_points[] = array('</p>' => 0);
     $line_breaks = array('<br />' => 6, '<br>' => 4);
     $break_points[] = $line_breaks;
     $break_points[] = array('. ' => 1, ', ' => 0, '! ' => 1, '? ' => 1, ' ' => 0);
     foreach ($break_points as $points) {
         foreach ($points as $point => $offset) {
             $rpos = mb_strpos($reversed, mb_strrev($point));
             if ($rpos !== false) {
                 $min_rpos = min($rpos + $offset, $min_rpos);
             }
         }
         if ($min_rpos !== $max_rpos) {
             $summary = $min_rpos === 0 ? $summary : mb_substr($summary, 0, 0 - $min_rpos) . '...';
             break;
         }
     }
     return $summary;
 }
예제 #7
0
 /**
  * Generate a unique name from an email address
  *
  * @param $email
  * @return mixed|string
  */
 function emailToName($email)
 {
     $email = mb_split('@', $email)[0];
     $name = preg_replace('/[^A-Za-z0-9]/', '', $email);
     do {
         if (!$this->user->findByName($name)) {
             break;
         }
         $nameRev = mb_strrev($name);
         $number = 1;
         if (preg_match('/([0-9]+)(.+)/us', $nameRev, $out)) {
             $name = mb_strrev($out[2]);
             $number = $out[1] + 1;
         }
         $name = $name . $number;
     } while (1);
     return $name;
 }