本文整理汇总了PHP中Thin\Inflector::unaccent方法的典型用法代码示例。如果您正苦于以下问题:PHP Inflector::unaccent方法的具体用法?PHP Inflector::unaccent怎么用?PHP Inflector::unaccent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Thin\Inflector
的用法示例。
在下文中一共展示了Inflector::unaccent方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compare
private function compare($comp, $op, $value)
{
$res = false;
if (strlen($comp) && strlen($op) && strlen($value)) {
$comp = Inflector::lower(Inflector::unaccent($comp));
$value = Inflector::lower(Inflector::unaccent($value));
switch ($op) {
case '=':
$res = sha1($comp) == sha1($value);
break;
case '>=':
$res = $comp >= $value;
break;
case '>':
$res = $comp > $value;
break;
case '<':
$res = $comp < $value;
break;
case '<=':
$res = $comp <= $value;
break;
case '<>':
case '!=':
$res = sha1($comp) != sha1($value);
break;
case 'LIKE':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$res = fnmatch($value, $comp);
break;
case 'NOTLIKE':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$check = fnmatch($value, $comp);
$res = !$check;
break;
case 'LIKESTART':
$value = str_replace("'", '', $value);
$value = str_replace('%', '', $value);
$res = substr($comp, 0, strlen($value)) === $value;
break;
case 'LIKEEND':
$value = str_replace("'", '', $value);
$value = str_replace('%', '', $value);
if (!strlen($comp)) {
$res = true;
}
$res = substr($comp, -strlen($value)) === $value;
break;
case 'IN':
$value = str_replace('(', '', $value);
$value = str_replace(')', '', $value);
$tabValues = explode(',', $value);
$res = Arrays::in($comp, $tabValues);
break;
case 'NOTIN':
$value = str_replace('(', '', $value);
$value = str_replace(')', '', $value);
$tabValues = explode(',', $value);
$res = !Arrays::in($comp, $tabValues);
break;
}
}
return $res;
}
示例2: compare
private function compare($comp, $op, $value)
{
$res = false;
if (strlen($comp) && strlen($op) && !empty($value)) {
if (is_numeric($comp)) {
if (fnmatch('*,*', $comp) || fnmatch('*.*', $comp)) {
$comp = floatval($comp);
} else {
$comp = intval($comp);
}
}
if (is_numeric($value)) {
if (fnmatch('*,*', $value) || fnmatch('*.*', $value)) {
$value = floatval($value);
} else {
$value = intval($value);
}
}
switch ($op) {
case '=':
$res = sha1($comp) == sha1($value);
break;
case '=i':
$comp = Inflector::lower(Inflector::unaccent($comp));
$value = Inflector::lower(Inflector::unaccent($value));
$res = sha1($comp) == sha1($value);
break;
case '>=':
$res = $comp >= $value;
break;
case '>':
$res = $comp > $value;
break;
case '<':
$res = $comp < $value;
break;
case '<=':
$res = $comp <= $value;
break;
case '<>':
case '!=':
$res = sha1($comp) != sha1($value);
break;
case 'LIKE':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$res = fnmatch($value, $comp);
break;
case 'NOT LIKE':
case 'NOTLIKE':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$check = fnmatch($value, $comp);
$res = !$check;
break;
case 'BETWEEN':
$res = $comp >= $value[0] && $comp <= $value[1];
break;
case 'NOT BETWEEN':
case 'NOTBETWEEN':
$res = $comp < $value[0] || $comp > $value[1];
break;
case 'LIKE START':
case 'LIKESTART':
$value = str_replace(["'", '%'], '', $value);
$res = substr($comp, 0, strlen($value)) === $value;
break;
case 'LIKE END':
case 'LIKEEND':
$value = str_replace(["'", '%'], '', $value);
if (!strlen($comp)) {
$res = true;
}
$res = substr($comp, -strlen($value)) === $value;
break;
case 'IN':
$value = str_replace('(', '', $value);
$value = str_replace(')', '', $value);
$tabValues = explode(',', $value);
$res = in_array($comp, $tabValues);
break;
case 'NOT IN':
case 'NOTIN':
$value = str_replace('(', '', $value);
$value = str_replace(')', '', $value);
$tabValues = explode(',', $value);
$res = !in_array($comp, $tabValues);
break;
}
}
return $res;
}
示例3: sanitize
public function sanitize($string)
{
$minLength = 2;
$maxLength = 15;
$classExclude = '\\x{0}-\\x{2c}\\x{2e}-\\x{2f}\\x{3a}-\\x{40}\\x{5b}-\\x{60}\\x{7b}-\\x{bf}\\x{d7}\\x{f7}\\x{2b0}-' . '\\x{385}\\x{387}\\x{3f6}\\x{482}-\\x{489}\\x{559}-\\x{55f}\\x{589}-\\x{5c7}\\x{5f3}-' . '\\x{61f}\\x{640}\\x{64b}-\\x{65e}\\x{66a}-\\x{66d}\\x{670}\\x{6d4}\\x{6d6}-\\x{6ed}' . '\\x{6fd}\\x{6fe}\\x{700}-\\x{70f}\\x{711}\\x{730}-\\x{74a}\\x{7a6}-\\x{7b0}\\x{901}-' . '\\x{903}\\x{93c}\\x{93e}-\\x{94d}\\x{951}-\\x{954}\\x{962}-\\x{965}\\x{970}\\x{981}-' . '\\x{983}\\x{9bc}\\x{9be}-\\x{9cd}\\x{9d7}\\x{9e2}\\x{9e3}\\x{9f2}-\\x{a03}\\x{a3c}-' . '\\x{a4d}\\x{a70}\\x{a71}\\x{a81}-\\x{a83}\\x{abc}\\x{abe}-\\x{acd}\\x{ae2}\\x{ae3}' . '\\x{af1}-\\x{b03}\\x{b3c}\\x{b3e}-\\x{b57}\\x{b70}\\x{b82}\\x{bbe}-\\x{bd7}\\x{bf0}-' . '\\x{c03}\\x{c3e}-\\x{c56}\\x{c82}\\x{c83}\\x{cbc}\\x{cbe}-\\x{cd6}\\x{d02}\\x{d03}' . '\\x{d3e}-\\x{d57}\\x{d82}\\x{d83}\\x{dca}-\\x{df4}\\x{e31}\\x{e34}-\\x{e3f}\\x{e46}-' . '\\x{e4f}\\x{e5a}\\x{e5b}\\x{eb1}\\x{eb4}-\\x{ebc}\\x{ec6}-\\x{ecd}\\x{f01}-\\x{f1f}' . '\\x{f2a}-\\x{f3f}\\x{f71}-\\x{f87}\\x{f90}-\\x{fd1}\\x{102c}-\\x{1039}\\x{104a}-' . '\\x{104f}\\x{1056}-\\x{1059}\\x{10fb}\\x{10fc}\\x{135f}-\\x{137c}\\x{1390}-\\x{1399}' . '\\x{166d}\\x{166e}\\x{1680}\\x{169b}\\x{169c}\\x{16eb}-\\x{16f0}\\x{1712}-\\x{1714}' . '\\x{1732}-\\x{1736}\\x{1752}\\x{1753}\\x{1772}\\x{1773}\\x{17b4}-\\x{17db}\\x{17dd}' . '\\x{17f0}-\\x{180e}\\x{1843}\\x{18a9}\\x{1920}-\\x{1945}\\x{19b0}-\\x{19c0}\\x{19c8}' . '\\x{19c9}\\x{19de}-\\x{19ff}\\x{1a17}-\\x{1a1f}\\x{1d2c}-\\x{1d61}\\x{1d78}\\x{1d9b}-' . '\\x{1dc3}\\x{1fbd}\\x{1fbf}-\\x{1fc1}\\x{1fcd}-\\x{1fcf}\\x{1fdd}-\\x{1fdf}\\x{1fed}-' . '\\x{1fef}\\x{1ffd}-\\x{2070}\\x{2074}-\\x{207e}\\x{2080}-\\x{2101}\\x{2103}-\\x{2106}' . '\\x{2108}\\x{2109}\\x{2114}\\x{2116}-\\x{2118}\\x{211e}-\\x{2123}\\x{2125}\\x{2127}' . '\\x{2129}\\x{212e}\\x{2132}\\x{213a}\\x{213b}\\x{2140}-\\x{2144}\\x{214a}-\\x{2b13}' . '\\x{2ce5}-\\x{2cff}\\x{2d6f}\\x{2e00}-\\x{3005}\\x{3007}-\\x{303b}\\x{303d}-\\x{303f}' . '\\x{3099}-\\x{309e}\\x{30a0}\\x{30fb}\\x{30fd}\\x{30fe}\\x{3190}-\\x{319f}\\x{31c0}-' . '\\x{31cf}\\x{3200}-\\x{33ff}\\x{4dc0}-\\x{4dff}\\x{a015}\\x{a490}-\\x{a716}\\x{a802}' . '\\x{e000}-\\x{f8ff}\\x{fb29}\\x{fd3e}-\\x{fd3f}\\x{fdfc}-\\x{fdfd}' . '\\x{fd3f}\\x{fdfc}-\\x{fe6b}\\x{feff}-\\x{ff0f}\\x{ff1a}-\\x{ff20}\\x{ff3b}-\\x{ff40}' . '\\x{ff5b}-\\x{ff65}\\x{ff70}\\x{ff9e}\\x{ff9f}\\x{ffe0}-\\x{fffd}';
$classNumbers = '\\x{30}-\\x{39}\\x{b2}\\x{b3}\\x{b9}\\x{bc}-\\x{be}\\x{660}-\\x{669}\\x{6f0}-\\x{6f9}' . '\\x{966}-\\x{96f}\\x{9e6}-\\x{9ef}\\x{9f4}-\\x{9f9}\\x{a66}-\\x{a6f}\\x{ae6}-\\x{aef}' . '\\x{b66}-\\x{b6f}\\x{be7}-\\x{bf2}\\x{c66}-\\x{c6f}\\x{ce6}-\\x{cef}\\x{d66}-\\x{d6f}' . '\\x{e50}-\\x{e59}\\x{ed0}-\\x{ed9}\\x{f20}-\\x{f33}\\x{1040}-\\x{1049}\\x{1369}-' . '\\x{137c}\\x{16ee}-\\x{16f0}\\x{17e0}-\\x{17e9}\\x{17f0}-\\x{17f9}\\x{1810}-\\x{1819}' . '\\x{1946}-\\x{194f}\\x{2070}\\x{2074}-\\x{2079}\\x{2080}-\\x{2089}\\x{2153}-\\x{2183}' . '\\x{2460}-\\x{249b}\\x{24ea}-\\x{24ff}\\x{2776}-\\x{2793}\\x{3007}\\x{3021}-\\x{3029}' . '\\x{3038}-\\x{303a}\\x{3192}-\\x{3195}\\x{3220}-\\x{3229}\\x{3251}-\\x{325f}\\x{3280}-' . '\\x{3289}\\x{32b1}-\\x{32bf}\\x{ff10}-\\x{ff19}';
$classPunctuation = '\\x{21}-\\x{23}\\x{25}-\\x{2a}\\x{2c}-\\x{2f}\\x{3a}\\x{3b}\\x{3f}\\x{40}\\x{5b}-\\x{5d}' . '\\x{5f}\\x{7b}\\x{7d}\\x{a1}\\x{ab}\\x{b7}\\x{bb}\\x{bf}\\x{37e}\\x{387}\\x{55a}-\\x{55f}' . '\\x{589}\\x{58a}\\x{5be}\\x{5c0}\\x{5c3}\\x{5f3}\\x{5f4}\\x{60c}\\x{60d}\\x{61b}\\x{61f}' . '\\x{66a}-\\x{66d}\\x{6d4}\\x{700}-\\x{70d}\\x{964}\\x{965}\\x{970}\\x{df4}\\x{e4f}' . '\\x{e5a}\\x{e5b}\\x{f04}-\\x{f12}\\x{f3a}-\\x{f3d}\\x{f85}\\x{104a}-\\x{104f}\\x{10fb}' . '\\x{1361}-\\x{1368}\\x{166d}\\x{166e}\\x{169b}\\x{169c}\\x{16eb}-\\x{16ed}\\x{1735}' . '\\x{1736}\\x{17d4}-\\x{17d6}\\x{17d8}-\\x{17da}\\x{1800}-\\x{180a}\\x{1944}\\x{1945}' . '\\x{2010}-\\x{2027}\\x{2030}-\\x{2043}\\x{2045}-\\x{2051}\\x{2053}\\x{2054}\\x{2057}' . '\\x{207d}\\x{207e}\\x{208d}\\x{208e}\\x{2329}\\x{232a}\\x{23b4}-\\x{23b6}\\x{2768}-' . '\\x{2775}\\x{27e6}-\\x{27eb}\\x{2983}-\\x{2998}\\x{29d8}-\\x{29db}\\x{29fc}\\x{29fd}' . '\\x{3001}-\\x{3003}\\x{3008}-\\x{3011}\\x{3014}-\\x{301f}\\x{3030}\\x{303d}\\x{30a0}' . '\\x{30fb}\\x{fd3e}\\x{fd3f}\\x{fe30}-\\x{fe52}\\x{fe54}-\\x{fe61}\\x{fe63}\\x{fe68}' . '\\x{fe6a}\\x{fe6b}\\x{ff01}-\\x{ff03}\\x{ff05}-\\x{ff0a}\\x{ff0c}-\\x{ff0f}\\x{ff1a}' . '\\x{ff1b}\\x{ff1f}\\x{ff20}\\x{ff3b}-\\x{ff3d}\\x{ff3f}\\x{ff5b}\\x{ff5d}\\x{ff5f}-' . '\\x{ff65}';
$classCJK = '\\x{3041}-\\x{30ff}\\x{31f0}-\\x{31ff}\\x{3400}-\\x{4db5}\\x{4e00}-\\x{9fbb}\\x{f900}-\\x{fad9}';
$string = trim($string);
if (empty($string)) {
return '';
}
$string = Inflector::lower(strip_tags($string));
$string = html_entity_decode($string, ENT_NOQUOTES, 'utf-8');
$string = preg_replace('/([' . $classNumbers . ']+)[' . $classPunctuation . ']+(?=[' . $classNumbers . '])/u', '\\1', $string);
$string = preg_replace('/[' . $classExclude . ']+/u', ' ', $string);
$string = preg_replace('/[._-]+/', ' ', $string);
$string = preg_replace('/(?<=\\s)[^\\s]{1,' . $minLength . '}(?=\\s)/Su', ' ', $string);
$string = preg_replace('/^[^\\s]{1,' . $minLength . '}(?=\\s)/Su', '', $string);
$string = preg_replace('/(?<=\\s)[^\\s]{1,' . $minLength . '}$/Su', '', $string);
$string = preg_replace('/^[^\\s]{1,' . $minLength . '}$/Su', '', $string);
$string = trim(preg_replace('/\\s+/', ' ', $string));
return Inflector::unaccent($string);
}
示例4: where
public function where($key, $operator = null, $value = null)
{
$this->query[] = func_get_args();
if (func_num_args() == 1) {
if (is_array($key)) {
if (count($key) == 1) {
$operator = '=';
$value = array_values($key);
$key = array_keys($key);
} elseif (count($key) == 3) {
list($key, $operator, $value) = $key;
}
$operator = strtolower($operator);
}
}
if (func_num_args() == 2) {
list($value, $operator) = [$operator, '='];
}
$collection = coll($this->select($key));
$keyCache = sha1(serialize($this->query) . $this->dir);
$ids = fmr('blizzcursor')->aged($keyCache, function () use($collection, $key, $operator, $value) {
$results = $collection->filter(function ($item) use($key, $operator, $value) {
$item = (object) $item;
$actual = isset($item->{$key}) ? $item->{$key} : null;
$insensitive = in_array($operator, ['=i', 'like i', 'not like i']);
if ((!is_array($actual) || !is_object($actual)) && $insensitive) {
$actual = Inflector::lower(Inflector::unaccent($actual));
}
if ((!is_array($value) || !is_object($value)) && $insensitive) {
$value = Inflector::lower(Inflector::unaccent($value));
}
if ($insensitive) {
$operator = str_replace(['=i', 'like i'], ['=', 'like'], $operator);
}
if ($key == 'id' || fnmatch('*_id', $key) && is_numeric($actual)) {
$actual = (int) $actual;
}
switch ($operator) {
case '<>':
case '!=':
return sha1(serialize($actual)) != sha1(serialize($value));
case '>':
return $actual > $value;
case '<':
return $actual < $value;
case '>=':
return $actual >= $value;
case '<=':
return $actual <= $value;
case 'between':
return $actual >= $value[0] && $actual <= $value[1];
case 'not between':
return $actual < $value[0] || $actual > $value[1];
case 'in':
return in_array($actual, $value);
case 'not in':
return !in_array($actual, $value);
case 'like':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
return fnmatch($value, $actual);
case 'not like':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$check = fnmatch($value, $actual);
return !$check;
case 'is':
return is_null($actual);
case 'is not':
return !is_null($actual);
case '=':
default:
return sha1(serialize($actual)) == sha1(serialize($value));
}
});
return array_values($results->fetch('id')->toArray());
}, $this->age);
$this->resource = lib('array')->makeResource($ids);
$this->count = count($this->getIterator());
return $this;
}
示例5: where
/**
* [where description]
* @param [type] $key [description]
* @param [type] $operator [description]
* @param [type] $value [description]
* @return [type] [description]
*/
public function where($key, $operator = null, $value = null)
{
if (func_num_args() == 1) {
if (is_array($key)) {
list($key, $operator, $value) = $key;
$operator = strtolower($operator);
}
}
if (func_num_args() == 2) {
list($value, $operator) = [$operator, '='];
}
return $this->filter(function ($item) use($key, $operator, $value) {
$item = (object) $item;
$actual = isset($item->{$key}) ? $item->{$key} : null;
$insensitive = in_array($operator, ['=i', 'like i', 'not like i']);
if ((!is_array($actual) || !is_object($actual)) && $insensitive) {
$actual = Inflector::lower(Inflector::unaccent($actual));
}
if ((!is_array($value) || !is_object($value)) && $insensitive) {
$value = Inflector::lower(Inflector::unaccent($value));
}
if ($insensitive) {
$operator = str_replace(['=i', 'like i'], ['=', 'like'], $operator);
}
if ($key == 'id' || fnmatch('*_id', $key) && is_numeric($actual)) {
$actual = (int) $actual;
}
switch ($operator) {
case '<>':
case '!=':
return sha1(serialize($actual)) != sha1(serialize($value));
case '>':
return $actual > $value;
case '<':
return $actual < $value;
case '>=':
return $actual >= $value;
case '<=':
return $actual <= $value;
case 'between':
return $actual >= $value[0] && $actual <= $value[1];
case 'not between':
return $actual < $value[0] || $actual > $value[1];
case 'in':
return in_array($actual, $value);
case 'not in':
return !in_array($actual, $value);
case 'like':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
return fnmatch($value, $actual);
case 'not like':
$value = str_replace("'", '', $value);
$value = str_replace('%', '*', $value);
$check = fnmatch($value, $actual);
return !$check;
case 'is':
return is_null($actual);
case 'is not':
return !is_null($actual);
case '=':
default:
return sha1(serialize($actual)) == sha1(serialize($value));
}
});
}