Passed
Branch v1.6.0 (6d31de)
by Wanderson
02:23
created

Str::toFileName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Win\Common\Utils;
4
5
/**
6
 * Manipulador de Strings
7
 */
8
class Str
9
{
10
	const TRUNCATE_BEFORE = 0;
11
	const TRUNCATE_AFTER = 1;
12
13
	/**
14
	 * @param string $string
15
	 * @return string
16
	 */
17
	public static function toUrl($string)
18
	{
19
		$url = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
20
		$url = preg_replace("/[^a-zA-Z0-9\/_| -]/", '', $url);
21
		$url = preg_replace("/[\/_| -]+/", '-', $url);
22
		$url = strtolower(trim($url, '-'));
23
24
		return $url;
25
	}
26
27
	/**
28
	 * @param string $string
29
	 * @return int
30
	 */
31
	public static function length($string)
32
	{
33
		return mb_strlen($string);
34
	}
35
36
	/**
37
	 * @param string $string
38
	 * @return string
39
	 */
40
	public static function lower($string)
41
	{
42
		return mb_strtolower($string);
43
	}
44
45
	/**
46
	 * @param string $string
47
	 * @return string
48
	 */
49
	public static function upper($string)
50
	{
51
		return mb_strtoupper($string);
52
	}
53
54
	/**
55
	 * @param string $string
56
	 * @return string
57
	 */
58
	public static function lowerCamel($string)
59
	{
60
		preg_match('/^_*/', $string, $begin);
61
62
		return $begin[0] . lcfirst(static::camel($string));
63
	}
64
65
	/**
66
	 * @param string $string
67
	 * @return string
68
	 */
69
	public static function camel($string)
70
	{
71
		$string = ucwords(mb_strtolower(trim(str_replace(['-', '_'], ' ', $string))));
72
73
		return preg_replace('/[^a-zA-Z0-9]/', '', $string);
74
	}
75
76
	/**
77
	 * Retorna a string resumida, sem cortar a última palavra
78
	 * @param string $string
79
	 * @param int $limit tamanho máximo
80
	 * @param int $mode TRUNCATE_BEFORE | TRUNCATE_AFTER
81
	 * @return string
82
	 */
83
	public static function truncate($string, $limit, $mode = self::TRUNCATE_BEFORE)
84
	{
85
		$string = strip_tags($string);
86
		if (mb_strlen($string) <= $limit) {
87
			return $string;
88
		}
89
		if ($mode === static::TRUNCATE_BEFORE) {
90
			$limit = mb_strrpos(mb_substr($string, 0, $limit + 1), ' ');
91
		} elseif ($mode === static::TRUNCATE_AFTER) {
92
			$limit = mb_strpos(mb_substr($string, $limit), ' ') + $limit;
93
		}
94
		return rtrim(mb_substr($string, 0, $limit), ' ,.!?') . '...';
95
	}
96
97
	/**
98
	 * Limpa a string, retirando espaços e tags html
99
	 * @param string $string
100
	 * @return string
101
	 */
102
	public static function strip($string)
103
	{
104
		return trim(strip_tags($string));
105
	}
106
}
107