Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
8 / 8 |
CRAP | |
100.00% |
22 / 22 |
Str | |
100.00% |
1 / 1 |
|
100.00% |
8 / 8 |
11 | |
100.00% |
22 / 22 |
toUrl | |
100.00% |
1 / 1 |
1 | |
100.00% |
6 / 6 |
|||
length | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
lower | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
upper | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
lowerCamel | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
camel | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
truncate | |
100.00% |
1 / 1 |
4 | |
100.00% |
8 / 8 |
|||
strip | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
namespace Win\Utils; | |
/** | |
* Utilitário de Strings | |
*/ | |
abstract class Str | |
{ | |
const TRUNCATE_BEFORE = 0; | |
const TRUNCATE_AFTER = 1; | |
/** | |
* @param string $string | |
* @return string | |
*/ | |
public static function toUrl($string) | |
{ | |
$url = iconv('UTF-8', 'ASCII//TRANSLIT', $string); | |
$url = preg_replace("/[^a-zA-Z0-9\/_| -]/", '', $url); | |
$url = ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '_$0', $url)), '_'); | |
$url = preg_replace("/[\/_| -]+/", '-', $url); | |
$url = strtolower(trim($url, '-')); | |
return $url; | |
} | |
/** | |
* @param string $string | |
* @return int | |
*/ | |
public static function length($string) | |
{ | |
return mb_strlen($string); | |
} | |
/** | |
* @param string $string | |
* @return string | |
*/ | |
public static function lower($string) | |
{ | |
return mb_strtolower($string); | |
} | |
/** | |
* @param string $string | |
* @return string | |
*/ | |
public static function upper($string) | |
{ | |
return mb_strtoupper($string); | |
} | |
/** | |
* @param string $string | |
* @return string | |
*/ | |
public static function lowerCamel($string) | |
{ | |
preg_match('/^_*/', $string, $begin); | |
return $begin[0] . lcfirst(static::camel($string)); | |
} | |
/** | |
* @param string $string | |
* @return string | |
*/ | |
public static function camel($string) | |
{ | |
$string = ucwords(mb_strtolower(trim(str_replace(['-', '_'], ' ', $string)))); | |
return preg_replace('/[^a-zA-Z0-9]/', '', $string); | |
} | |
/** | |
* Retorna a string resumida, sem cortar a última palavra | |
* @param string $string | |
* @param int $limit tamanho máximo | |
* @param int $mode TRUNCATE_BEFORE | TRUNCATE_AFTER | |
* @return string | |
*/ | |
public static function truncate($string, $limit, $mode = self::TRUNCATE_BEFORE) | |
{ | |
$string = strip_tags($string); | |
if (mb_strlen($string) <= $limit) { | |
return $string; | |
} | |
if ($mode === static::TRUNCATE_BEFORE) { | |
$limit = mb_strrpos(mb_substr($string, 0, $limit + 1), ' '); | |
} elseif ($mode === static::TRUNCATE_AFTER) { | |
$limit = mb_strpos(mb_substr($string, $limit), ' ') + $limit; | |
} | |
return rtrim(mb_substr($string, 0, $limit), ' ,.!?') . '...'; | |
} | |
/** | |
* Limpa a string, retirando espaços e tags html | |
* @param string $string | |
* @return string | |
*/ | |
public static function strip($string) | |
{ | |
return trim(strip_tags($string)); | |
} | |
} |