Any-Latin; Latin-ASCII; [\u0080-\uffff] remove
transliteration rule. The rule is loose, letters will be transliterated with the characters of Basic Latin Unicode Block. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español?
will be transliterated to huo qu dao dochira Ukrainska: g,e, Srpska: d, n, d! Espanol?
. Used in transliterate(). For detailed information see unicode normalization forms yii\helpers\BaseInflector TRANSLITERATE_MEDIUM 'Any-Latin; Latin-ASCII' Shortcut for Any-Latin; Latin-ASCII
transliteration rule. The rule is medium, letters will be transliterated to characters of Latin-1 (ISO 8859-1) ASCII table. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español?
will be transliterated to huo qu dao dochira Ukrainsʹka: g,e, Srpska: d, n, d! ¿Espanol?
. Used in transliterate(). For detailed information see unicode normalization forms yii\helpers\BaseInflector TRANSLITERATE_STRICT 'Any-Latin; NFKD' Shortcut for Any-Latin; NFKD
transliteration rule. The rule is strict, letters will be transliterated with the closest sound-representation chars. The result may contain any UTF-8 chars. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español?
will be transliterated to huò qǔ dào dochira Ukraí̈nsʹka: g̀,ê, Srpska: đ, n̂, d̂! ¿Español?
. Used in transliterate(). For detailed information see unicode normalization forms yii\helpers\BaseInflector Property Details
The rules for converting a word into its plural form. The keys are the regular expressions and the values are the corresponding replacements.
public static array $plurals = [The rules for converting a word into its singular form. The keys are the regular expressions and the values are the corresponding replacements.
public static array $singulars = [The special rules for converting a word between its plural form and singular form. The keys are the special words in singular form, and the values are the corresponding plural form.
public static array $specials = [Fallback map for transliteration used by transliterate() when intl isn't available.
public static array $transliteration = [Converts a CamelCase name into an ID in lowercase.
Words in the ID may be concatenated using the specified character (defaults to '-'). For example, 'PostTag' will be converted to 'post-tag'.
public static string camel2id ( $name, $separator = '-', $strict = false ) $name stringThe string to be converted
$separator stringThe character used to concatenate the words in the ID
$strict boolean|stringWhether to insert a separator between two consecutive uppercase chars, defaults to false
return stringThe resulting ID
public static function camel2id($name, $separator = '-', $strict = false)
{
if (empty($name)) {
return (string) $name;
}
$regex = $strict ? '/\p{Lu}/u' : '/(?<!\p{Lu})\p{Lu}/u';
if ($separator === '_') {
return mb_strtolower(trim(preg_replace($regex, '_\0', $name), '_'), self::encoding());
}
return mb_strtolower(trim(str_replace('_', $separator, preg_replace($regex, $separator . '\0', $name)), $separator), self::encoding());
}
Converts a CamelCase name into space-separated words.
For example, 'PostTag' will be converted to 'Post Tag'.
public static string camel2words ( $name, $ucwords = true ) $name stringThe string to be converted
$ucwords booleanWhether to capitalize the first letter in each word
return stringThe resulting words
public static function camel2words($name, $ucwords = true)
{
if (empty($name)) {
return (string) $name;
}
$label = preg_replace('/(?<=\p{Ll})\p{Lu}|(?<=\p{L})\p{Lu}(?=\p{Ll})/u', ' \0', $name);
$label = mb_strtolower(trim(str_replace(['-', '_', '.'], ' ', $label)), self::encoding());
return $ucwords ? StringHelper::mb_ucwords($label, self::encoding()) : $label;
}
Returns given word as CamelCased.
Converts a word like "send_email" to "SendEmail". It will remove non alphanumeric character from the word, so "who's online" will be converted to "WhoSOnline".
See also variablize().
public static function camelize($word)
{
if (empty($word)) {
return (string) $word;
}
return str_replace(' ', '', StringHelper::mb_ucwords(preg_replace('/[^\pL\pN]+/u', ' ', $word), self::encoding()));
}
Converts a table name to its class name.
For example, converts "people" to "Person".
public static function classify($tableName)
{
if (empty($tableName)) {
return (string) $tableName;
}
return static::camelize(static::singularize($tableName));
}
protected static function hasIntl()
{
return extension_loaded('intl');
}
Returns a human-readable string from $word.
public static string humanize ( $word, $ucAll = false ) $word stringThe string to humanize
$ucAll booleanWhether to set all words to uppercase or not
public static function humanize($word, $ucAll = false)
{
if (empty($word)) {
return (string) $word;
}
$word = str_replace('_', ' ', preg_replace('/_id$/', '', $word));
$encoding = self::encoding();
return $ucAll ? StringHelper::mb_ucwords($word, $encoding) : StringHelper::mb_ucfirst($word, $encoding);
}
Converts an ID into a CamelCase name.
Words in the ID separated by $separator
(defaults to '-') will be concatenated into a CamelCase name. For example, 'post-tag' is converted to 'PostTag'.
The ID to be converted
$separator stringThe character used to separate the words in the ID
return stringThe resulting CamelCase name
public static function id2camel($id, $separator = '-')
{
if (empty($id)) {
return (string) $id;
}
return str_replace(' ', '', StringHelper::mb_ucwords(str_replace($separator, ' ', $id), self::encoding()));
}
Converts number to its ordinal English form. For example, converts 13 to 13th, 2 to 2nd .
..
public static function ordinalize($number)
{
if (in_array($number % 100, range(11, 13))) {
return $number . 'th';
}
switch ($number % 10) {
case 1:
return $number . 'st';
case 2:
return $number . 'nd';
case 3:
return $number . 'rd';
default:
return $number . 'th';
}
}
Converts a word to its plural form.
Note that this is for English only! For example, 'apple' will become 'apples', and 'child' will become 'children'.
public static function pluralize($word)
{
if (empty($word)) {
return (string) $word;
}
if (isset(static::$specials[$word])) {
return static::$specials[$word];
}
foreach (static::$plurals as $rule => $replacement) {
if (preg_match($rule, $word)) {
return preg_replace($rule, $replacement, $word);
}
}
return $word;
}
Converts a list of words into a sentence.
Special treatment is done for the last few words. For example,
$words = ['Spain', 'France'];
echo Inflector::sentence($words);
$words = ['Spain', 'France', 'Italy'];
echo Inflector::sentence($words);
$words = ['Spain', 'France', 'Italy'];
echo Inflector::sentence($words, ' & ');
public static string sentence ( array $words, $twoWordsConnector = null, $lastWordConnector = null, $connector = ', ' ) $words array
The words to be converted into an string
$twoWordsConnector string|nullThe string connecting words when there are only two
$lastWordConnector string|nullThe string connecting the last two words. If this is null, it will take the value of $twoWordsConnector
.
The string connecting words other than those connected by $lastWordConnector and $twoWordsConnector
return stringThe generated sentence
public static function sentence(array $words, $twoWordsConnector = null, $lastWordConnector = null, $connector = ', ')
{
if ($twoWordsConnector === null) {
$twoWordsConnector = Yii::t('yii', ' and ');
}
if ($lastWordConnector === null) {
$lastWordConnector = $twoWordsConnector;
}
switch (count($words)) {
case 0:
return '';
case 1:
return reset($words);
case 2:
return implode($twoWordsConnector, $words);
default:
return implode($connector, array_slice($words, 0, -1)) . $lastWordConnector . end($words);
}
}
Returns the singular of the $word.
public static function singularize($word)
{
if (empty($word)) {
return (string) $word;
}
$result = array_search($word, static::$specials, true);
if ($result !== false) {
return $result;
}
foreach (static::$singulars as $rule => $replacement) {
if (preg_match($rule, $word)) {
return preg_replace($rule, $replacement, $word);
}
}
return $word;
}
Returns a string with all spaces converted to given replacement, non word characters removed and the rest of characters transliterated.
If intl extension isn't available uses fallback that converts latin characters only and removes the rest. You may customize characters map via $transliteration property of the helper.
public static string slug ( $string, $replacement = '-', $lowercase = true ) $string stringAn arbitrary string to convert
$replacement stringThe replacement to use for spaces
$lowercase booleanWhether to return the string in lowercase or not. Defaults to true
.
The converted string.
public static function slug($string, $replacement = '-', $lowercase = true)
{
if (empty($string)) {
return (string) $string;
}
if ((string)$replacement !== '') {
$parts = explode($replacement, static::transliterate($string));
} else {
$parts = [static::transliterate($string)];
}
$replaced = array_map(function ($element) use ($replacement) {
$element = preg_replace('/[^a-zA-Z0-9=\s—–-]+/u', '', $element);
return preg_replace('/[=\s—–-]+/u', $replacement, $element);
}, $parts);
$string = trim(implode($replacement, $replaced), $replacement);
if ((string)$replacement !== '') {
$string = preg_replace('#' . preg_quote($replacement, '#') . '+#', $replacement, $string);
}
return $lowercase ? strtolower($string) : $string;
}
Converts a class name to its table name (pluralized) naming conventions.
For example, converts "Person" to "people".
public static string tableize ( $className ) $className stringThe class name for getting related table_name
public static function tableize($className)
{
if (empty($className)) {
return (string) $className;
}
return static::pluralize(static::underscore($className));
}
Converts an underscored or CamelCase word into a English sentence.
public static function titleize($words, $ucAll = false)
{
if (empty($words)) {
return (string) $words;
}
$words = static::humanize(static::underscore($words), $ucAll);
return $ucAll ? StringHelper::mb_ucwords($words, self::encoding()) : StringHelper::mb_ucfirst($words, self::encoding());
}
Returns transliterated version of a string.
If intl extension isn't available uses fallback that converts latin characters only and removes the rest. You may customize characters map via $transliteration property of the helper.
Version Description 2.0.7 this method is public. public static function transliterate($string, $transliterator = null)
{
if (empty($string)) {
return (string) $string;
}
if (static::hasIntl()) {
if ($transliterator === null) {
$transliterator = static::$transliterator;
}
return transliterator_transliterate($transliterator, $string);
}
return strtr($string, static::$transliteration);
}
Converts any "CamelCased" into an "underscored_word".
public static function underscore($words)
{
if (empty($words)) {
return (string) $words;
}
return mb_strtolower(preg_replace('/(?<=\\pL)(\\p{Lu})/u', '_\\1', $words), self::encoding());
}
Same as camelize but first char is in lowercase.
Converts a word like "send_email" to "sendEmail". It will remove non alphanumeric character from the word, so "who's online" will be converted to "whoSOnline".
public static function variablize($word)
{
if (empty($word)) {
return (string) $word;
}
$word = static::camelize($word);
return mb_strtolower(mb_substr($word, 0, 1, self::encoding())) . mb_substr($word, 1, null, self::encoding());
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4