112 lines
2.2 KiB
PHP
112 lines
2.2 KiB
PHP
<?php namespace Laravel;
|
|
|
|
class Str {
|
|
|
|
/**
|
|
* Convert a string to lowercase.
|
|
*
|
|
* @param string $value
|
|
* @return string
|
|
*/
|
|
public static function lower($value)
|
|
{
|
|
if (function_exists('mb_strtolower'))
|
|
{
|
|
return mb_strtolower($value, static::encoding());
|
|
}
|
|
|
|
return strtolower($value);
|
|
}
|
|
|
|
/**
|
|
* Convert a string to uppercase.
|
|
*
|
|
* @param string $value
|
|
* @return string
|
|
*/
|
|
public static function upper($value)
|
|
{
|
|
if (function_exists('mb_strtoupper'))
|
|
{
|
|
return mb_strtoupper($value, static::encoding());
|
|
}
|
|
|
|
return strtoupper($value);
|
|
}
|
|
|
|
/**
|
|
* Convert a string to title case (ucwords).
|
|
*
|
|
* @param string $value
|
|
* @return string
|
|
*/
|
|
public static function title($value)
|
|
{
|
|
if (function_exists('mb_convert_case'))
|
|
{
|
|
return mb_convert_case($value, MB_CASE_TITLE, static::encoding());
|
|
}
|
|
|
|
return ucwords(strtolower($value));
|
|
}
|
|
|
|
/**
|
|
* Get the length of a string.
|
|
*
|
|
* @param string $value
|
|
* @return int
|
|
*/
|
|
public static function length($value)
|
|
{
|
|
if (function_exists('mb_strlen'))
|
|
{
|
|
return mb_strlen($value, static::encoding());
|
|
}
|
|
|
|
return strlen($value);
|
|
}
|
|
|
|
/**
|
|
* Convert a string to 7-bit ASCII.
|
|
*
|
|
* @param string $value
|
|
* @return string
|
|
*/
|
|
public static function ascii($value)
|
|
{
|
|
$foreign = IoC::container()->resolve('laravel.config')->get('ascii');
|
|
|
|
$value = preg_replace(array_keys($foreign), array_values($foreign), $value);
|
|
|
|
return preg_replace('/[^\x09\x0A\x0D\x20-\x7E]/', '', $value);
|
|
}
|
|
|
|
/**
|
|
* Generate a random alpha or alpha-numeric string.
|
|
*
|
|
* Supported types: 'alpha_num' and 'alpha'.
|
|
*
|
|
* @param int $length
|
|
* @param string $type
|
|
* @return string
|
|
*/
|
|
public static function random($length = 16, $type = 'alpha_num')
|
|
{
|
|
$alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
|
$pool = ($type == 'alpha_num') ? '0123456789'.$alpha : $alpha;
|
|
|
|
return implode('', array_map(function() use ($pool) { return $pool[mt_rand(0, strlen($pool) - 1)]; }, range(0, $length - 1)));
|
|
}
|
|
|
|
/**
|
|
* Get the application encoding from the configuration class.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected static function encoding()
|
|
{
|
|
return IoC::container()->resolve('laravel.config')->get('application.encoding');
|
|
}
|
|
|
|
} |