$size Digits per placeholder [min, max] * @param null|array $countries Country codes * * @return string * * @since 1.0.0 */ public static function generatePhone( bool $isInt = true, string $struct = '+$1 ($2) $3-$4', array $size = [null, [3, 4], [3, 5], [3, 8],], ?array $countries = null ) : string { $numberString = $struct; if ($isInt) { $countries ??= ['de' => 49, 'us' => 1]; $numberString = \str_replace( '$1', (string) $countries[\array_rand($countries, 1)], $numberString ); } $numberParts = \substr_count($struct, '$'); for ($i = ($isInt ? 2 : 1); $i <= $numberParts; ++$i) { $numberString = \str_replace( '$' . $i, StringUtils::generateString( $size[$i - 1][0] ?? 0, $size[$i - 1][1] ?? 0, '0123456789' ), $numberString ); } return $numberString; } }