Passed
Push — master ( 924cd6...bbbdac )
by Stephen
02:28
created

fill()   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 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
use Sfneal\Helpers\Strings\StringHelpers;
4
5
/**
6
 * Sanitize a file name to remove illegal chars.
7
 *
8
 * @param string $raw
9
 * @return string
10
 */
11
function sanitizeFileName(string $raw): string
12
{
13
    return (new StringHelpers($raw))->sanitizeFileName();
14
}
15
16
/**
17
 * Truncate a string to be no longer than $chars.
18
 *
19
 * @param string $string
20
 * @param int $chars
21
 * @param string $suffix
22
 * @return string
23
 */
24
function truncateString(string $string, int $chars = 100, string $suffix = '...'): string
25
{
26
    return (new StringHelpers($string))->truncate($chars, $suffix);
27
}
28
29
/**
30
 * Covert a camel cased string into a $char separated string.
31
 *
32
 * @param string $string
33
 * @param string $char
34
 * @return string
35
 */
36
function camelCaseConverter(string $string, $char = '-'): string
37
{
38
    return (new StringHelpers($string))->camelCaseConvert($char);
39
}
40
41
/**
42
 * Remove illegal characters from a string to create an ID.
43
 *
44
 * @param $string
45
 * @return string
46
 */
47
function str2id($string): string
48
{
49
    return (new StringHelpers($string))->id();
50
}
51
52
/**
53
 * Remove ' ', '-', '&' characters.
54
 *
55
 * @param $item
56
 * @return string
57
 */
58
function stripString($item): string
59
{
60
    return (new StringHelpers($item))->strip();
61
}
62
63
/**
64
 * Remove spaces and convert string to lowercase chars.
65
 *
66
 * @param $string
67
 * @return string|string[]
68
 */
69
function stringID($string): string
70
{
71
    return (new StringHelpers($string))->id();
72
}
73
74
/**
75
 * Check if a needle string is in a haystack string.
76
 *
77
 * @param string $haystack
78
 * @param string|array $needle
79
 * @param string $boolean
80
 * @return bool
81
 */
82
function inString(string $haystack, $needle, string $boolean = 'and'): bool
83
{
84
    return (new StringHelpers($haystack))->inString($needle, $boolean);
85
}
86
87
/**
88
 * Determine if the $string is a plain text list of values.
89
 *
90
 *  - if $string is a list, an array of values is returned
91
 *  - if $sting is a string, false is returned
92
 *
93
 * @param string $string
94
 * @param array|string[] $separators
95
 * @return bool|false|string[]
96
 */
97
function isListString(string $string, array $separators = [', ', ' '])
98
{
99
    return (new StringHelpers($string))->isListString($separators);
100
}
101
102
/**
103
 * Explode a string using an array of delimiters instead of a single string.
104
 *
105
 * @param string $string
106
 * @param array|string[] $delimiters
107
 * @param string $replacer
108
 * @return array
109
 */
110
function explodeMany(string $string,
111
                     array $delimiters = [',', '&', '/', '-'],
112
                     string $replacer = '***'): array
113
{
114
    return (new StringHelpers($string))->explodeMany($delimiters, $replacer);
115
}
116
117
/**
118
 * Add whitespace padding to a string.
119
 *
120
 * @param string $string
121
 * @param int $amount
122
 * @param string $pad
123
 * @param bool $front add whitespace to 'front' of the string
124
 * @param bool $back add whitespace to the 'back' of the string
125
 * @return string
126
 */
127
function whitespacePad(string $string,
128
                       int $amount = 1,
129
                       string $pad = ' ',
130
                       bool $front = true,
131
                       bool $back = true): string
132
{
133
    return (new StringHelpers($string))->whitespacePad($amount, $pad, $front, $back);
134
}
135
136
/**
137
 * Add whitespace padding to only the 'back' of the string.
138
 *
139
 * @param string $string
140
 * @param int $amount
141
 * @param string $pad
142
 * @return string
143
 */
144
function whitespacePadBack(string $string, int $amount = 1, string $pad = ' '): string
145
{
146
    return (new StringHelpers($string))->whitespacePadBack($amount, $pad);
147
}
148
149
/**
150
 * Add whitespace padding to only the 'back' of the string.
151
 *
152
 * @param string $string
153
 * @param int $amount
154
 * @param string $pad
155
 * @return string
156
 */
157
function whitespacePadFront(string $string, int $amount = 1, string $pad = ' '): string
158
{
159
    return (new StringHelpers($string))->whitespacePadFront($amount, $pad);
160
}
161
162
/**
163
 * Remove all whitespace (spaces) from a string.
164
 *
165
 * @param string $string
166
 * @return string
167
 */
168
function whitespaceRemove(string $string): string
169
{
170
    return (new StringHelpers($string))->whitespaceRemove();
171
}
172
173
/**
174
 * Remove all whitespace (spaces) from a string & replace with another string.
175
 *
176
 * @param string $string
177
 * @param string $replacement defaults to ''
178
 * @return string
179
 */
180
function whitespaceReplace(string $string, string $replacement = ''): string
181
{
182
    return (new StringHelpers($string))->whitespaceReplace($replacement);
183
}
184
185
/**
186
 * Fill a string with whitespace in order to make it a certain length in chars.
187
 *
188
 * @param string $string
189
 * @param int $length length of the string in characters
190
 * @param string $filler string to use to fill the needed whitespace
191
 * @return string
192
 */
193
function fill(string $string, int $length, string $filler = ' '): string
194
{
195
    return (new StringHelpers($string))->fill($length, $filler);
196
}
197
198
/**
199
 * Implode values that are not null.
200
 *
201
 * @param $glue
202
 * @param array $pieces
203
 * @return string|null
204
 */
205
function implodeFiltered($glue, array $pieces): ?string
206
{
207
    return StringHelpers::implodeFiltered($glue, $pieces);
208
}
209
210
/**
211
 * Concatenate directory and file path arrays.
212
 *
213
 * @param mixed ...$paths
214
 * @return string
215
 */
216
function joinPaths(...$paths): string
217
{
218
    return StringHelpers::joinPaths(...$paths);
219
}
220
221
/**
222
 * Retrieve a website domain without prefixes.
223
 *
224
 * @param string $url
225
 * @return string
226
 */
227
function extractWebsiteDomain(string $url): string
228
{
229
    return StringHelpers::extractWebsiteDomain($url);
230
}
231
232
/**
233
 * Retrieve a website domain from an email address.
234
 *
235
 * @param string $email
236
 * @return string
237
 */
238
function extractEmailDomain(string $email): string
239
{
240
    return StringHelpers::extractEmailDomain($email);
241
}
242
243
/**
244
 * Only retrieve an integer value if the $value is greater than zero.
245
 *
246
 * Uses $return as the $return value instead of $value if not null.
247
 * Return original $value or $return if it is greater than zero.
248
 * Return $substitute string if it is less.
249
 *
250
 * @param $value
251
 * @param string $substitute
252
 * @param mixed $return
253
 * @return mixed
254
 */
255
function zero_replace($value, $substitute = '-', $return = null)
256
{
257
    return StringHelpers::zeroReplace($value, $substitute, $return);
258
}
259
260
/**
261
 * Pretty implode an array by using a different glue for the last piece.
262
 *
263
 * Examples:
264
 *  - implodePretty([1, 2, 3]) --> '1, 2 & 3'
265
 *  - implodePretty([A, B, D]) --> 'A, B & D'
266
 *
267
 * @param array $pieces
268
 * @param string $glue
269
 * @param string $and
270
 * @return string
271
 */
272
function implodePretty(array $pieces, string $glue = ',', string $and = '&'): ?string
273
{
274
    return StringHelpers::implodePretty($pieces, $glue, $and);
275
}
276
277
/**
278
 * Generate a random password using uniqueid & md5 functions.
279
 *
280
 * @param int $length
281
 * @param string $prefix
282
 * @param string $hashFunction
283
 * @return string
284
 */
285
function randomPassword(int $length = 8, string $prefix = '', string $hashFunction = 'md5'): string
286
{
287
    return $prefix.truncateString($hashFunction(uniqid()), $length, '');
288
}
289