Ejemplo n.º 1
0
 public static function normalize($string, $encoding = 'utf-8')
 {
     $string = iconv($encoding, 'ascii//translit', $string);
     $string = utf8::str_ireplace(',', '', $string);
     $string = utf8::str_ireplace('\'', '', $string);
     $string = preg_replace('/[^a-z0-9-\\+\\/_ ]/iUD', '_', $string);
     return $string;
 }
Ejemplo n.º 2
0
 public static function __normalize_filename($filename)
 {
     $encoding = 'utf-8';
     $name = pathinfo($filename, PATHINFO_FILENAME);
     $ext = pathinfo($filename, PATHINFO_EXTENSION);
     $name = iconv($encoding, 'ascii//translit', $name);
     $name = utf8::str_ireplace(',', '', $name);
     $name = utf8::str_ireplace('\'', '', $name);
     $name = preg_replace('/[^a-z0-9\\-_\\$\\.\\+\\!\\(\\)]/i', '_', $name);
     return preg_replace('/_{2,}/i', '_', $name) . '.' . $ext;
 }
Ejemplo n.º 3
0
/**
 * utf8::str_ireplace
 *
 * @package    Core
 * @author     Kohana Team
 * @copyright  (c) 2007 Kohana Team
 * @copyright  (c) 2005 Harry Fuecks
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
 */
function _str_ireplace($search, $replace, $str, &$count = NULL)
{
    if (utf8::is_ascii($search) and utf8::is_ascii($replace) and utf8::is_ascii($str)) {
        return str_ireplace($search, $replace, $str, $count);
    }
    if (is_array($str)) {
        foreach ($str as $key => $val) {
            $str[$key] = utf8::str_ireplace($search, $replace, $val, $count);
        }
        return $str;
    }
    if (is_array($search)) {
        $keys = array_keys($search);
        foreach ($keys as $k) {
            if (is_array($replace)) {
                if (array_key_exists($k, $replace)) {
                    $str = utf8::str_ireplace($search[$k], $replace[$k], $str, $count);
                } else {
                    $str = utf8::str_ireplace($search[$k], '', $str, $count);
                }
            } else {
                $str = utf8::str_ireplace($search[$k], $replace, $str, $count);
            }
        }
        return $str;
    }
    $search = utf8::strtolower($search);
    $str_lower = utf8::strtolower($str);
    $total_matched_strlen = 0;
    $i = 0;
    while (preg_match('/(.*?)' . preg_quote($search, '/') . '/s', $str_lower, $matches)) {
        $matched_strlen = strlen($matches[0]);
        $str_lower = substr($str_lower, $matched_strlen);
        $offset = $total_matched_strlen + strlen($matches[1]) + $i * (strlen($replace) - 1);
        $str = substr_replace($str, $replace, $offset, strlen($search));
        $total_matched_strlen += $matched_strlen;
        $i++;
    }
    $count += $i;
    return $str;
}
Ejemplo n.º 4
0
 public function account_number($p_iNRB)
 {
     // Usuniecie spacji
     $iNRB = utf8::str_ireplace(' ', '', $p_iNRB);
     // Sprawdzenie czy przekazany numer zawiera 26 znaków
     if (utf8::strlen($iNRB) != 26) {
         die('fail #1');
         return false;
     }
     // Zdefiniowanie tablicy z wagami poszczególnych cyfr
     $aWagiCyfr = array(1, 10, 3, 30, 9, 90, 27, 76, 81, 34, 49, 5, 50, 15, 53, 45, 62, 38, 89, 17, 73, 51, 25, 56, 75, 71, 31, 19, 93, 57);
     // Dodanie kodu kraju (w tym przypadku dodajemy kod PL)
     $iNRB = $iNRB . '2521';
     $iNRB = utf8::substr($iNRB, 2) . utf8::substr($iNRB, 0, 2);
     // Wyzerowanie zmiennej
     $iSumaCyfr = 0;
     // Pćtla obliczająca sumć cyfr w numerze konta
     for ($i = 0; $i < 30; $i++) {
         $iSumaCyfr += $iNRB[29 - $i] * $aWagiCyfr[$i];
     }
     // Sprawdzenie czy modulo z sumy wag poszczegolnych cyfr jest rowne 1
     return $iSumaCyfr % 97 == 1;
 }
Ejemplo n.º 5
0
 /**
  * Tests the text::random() function.
  * @dataProvider random_provider
  * @group core.helpers.text.random
  * @test
  */
 public function random($type, $length = 8)
 {
     //$this->markTestIncomplete('Test for PHP 5.3 bug needs to be counted, Kohana is still supporting 5.2');
     $result = text::random($type, $length);
     if ((string) $type) {
         // Checking length
         $this->assertEquals(mb_strlen($result), $length);
         $pool = '';
         switch ($type) {
             case 'alnum':
                 $this->assertTrue(valid::alpha_numeric($result));
                 break;
             case 'alpha':
                 $this->assertTrue(valid::alpha($result));
                 break;
             case 'numeric':
                 $this->assertTrue(valid::numeric($result));
                 break;
             case 'nozero':
                 $this->assertTrue(is_numeric($result));
                 break;
             case 'hexdec':
                 $pool = '0123456789abcdef';
                 break;
             case 'distinct':
                 $pool = '2345679ACDEFHJKLMNPRSTUVWXYZ';
                 break;
             default:
                 $pool = (string) $type;
         }
         if ($pool) {
             // PHP versions before 5.3 have a bug with preg_quote and it doesn't escape '-'
             $pool = version_compare(PHP_VERSION, '5.3', '>=') ? preg_quote((string) $pool, '/') : utf8::str_ireplace('-', '\\-', preg_quote((string) $pool, '/'));
             if (preg_match('/[' . $pool . ']*/u', $result, $match)) {
                 $this->assertEquals($match[0], $result);
             } else {
                 $this->assertTrue(FALSE);
             }
         }
     } else {
         // Checking length
         $this->assertEquals($result, '');
     }
 }