mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-11 17:58:41 +00:00
67 lines
1.8 KiB
PHP
67 lines
1.8 KiB
PHP
<?php
|
|
/**
|
|
* Orange Management
|
|
*
|
|
* PHP Version 7.1
|
|
*
|
|
* @category TBD
|
|
* @package TBD
|
|
* @copyright Dennis Eichhorn
|
|
* @license OMS License 1.0
|
|
* @version 1.0.0
|
|
* @link http://orange-management.com
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace phpOMS\Utils\RnG;
|
|
|
|
|
|
/**
|
|
* Phone generator.
|
|
*
|
|
* @category Framework
|
|
* @package Utils\RnG
|
|
* @license OMS License 1.0
|
|
* @link http://orange-management.com
|
|
* @since 1.0.0
|
|
*/
|
|
class Phone
|
|
{
|
|
|
|
/**
|
|
* Get a random phone number.
|
|
*
|
|
* @param bool $isInt This number uses a country code
|
|
* @param array $layout Number layout
|
|
* @param array $countries Country codes
|
|
*
|
|
* @return \DateTime
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
public static function generatePhone($isInt = true, $layout = ['struct' => '+$1 ($2) $3-$4',
|
|
'size' => [null,
|
|
[3, 4],
|
|
[3, 5],
|
|
[3, 8],],], $countries = null)
|
|
{
|
|
$numberString = $layout['struct'];
|
|
|
|
if ($isInt) {
|
|
if ($countries === null) {
|
|
$countries = ['de' => 49, 'us' => 1];
|
|
}
|
|
|
|
$numberString = str_replace('$1', $countries[array_keys($countries)[rand(0, count($countries))]], $numberString);
|
|
}
|
|
|
|
$numberParts = substr_count($layout['struct'], '$');
|
|
|
|
for ($i = ($isInt ? 2 : 1); $i < $numberParts; $i++) {
|
|
$numberString = str_replace('$' . $i, StringUtils::generateString($layout['size'][$i - 1][0], $layout['size'][$i - 1][1], '0123456789'), $numberString);
|
|
}
|
|
|
|
return $numberString;
|
|
}
|
|
}
|