Как создать все возможные номера мобильных телефонов в мире?

Поэтому мы решили создать и сохранить все возможные номера телефонов в мире, просто потому, что можем 🙂

Как бы Вы это сделали ?

Будет создано около 10 миллиардов номеров, будет использовано 5 терр MySQL, все числа, хранящиеся в БД, будут уникальными.

Так
1. Мы можем извлечь регулярное выражение из Вот, выражения как:

'mobile' =>
array (
'NationalNumberPattern' => '
1(?:
5[0-25-9]\\d{8}|
6[023]\\d{7,8}|
7(?:
[0-57-9]\\d?|
6\\d
)\\d{7}
)

затем
2. Мы можем использовать этот для генерации чисел, вот так:

use ReverseRegex\Lexer;
use ReverseRegex\Random\SimpleRandom;
use ReverseRegex\Parser;
use ReverseRegex\Generator\Scope;

# load composer
require "vendor/autoload.php";

$lexer = new  Lexer('expression from above');
$gen   = new SimpleRandom(10007);
$result = '';

$parser = new Parser($lexer,new Scope(),new Scope());
$parser->parse()->getResult()->generate($result,$gen);

echo $result;

отголоски такие:

+33944631251+3613331251+3687539481+3612310548+3659429165+3689423986+33403300091+3646142500+3662480496+
  1. Мы можем дважды проверить (перебить), проверить, проанализировать и сохранить:

    $ phoneLib -> parse / format / isValidNumber ..

а также

 function store ($nums_array){ /* Store in db */ }

Вероятно, можно было бы выполнить эту работу с парой процессоров и многопроцессорностью менее чем за месяц.

Но есть проблемы:
Обратное регулярное выражение lib часто (20% — 40%) повторяет числа, генерирует слишком короткие или длинные числа, генерирует числа с помощью «:».
С течением времени создание уникального номера становится все сложнее и сложнее, поскольку возможности сужаются.
Потребление диска и скорость MySQL могут быть не лучшим решением.

Учитывая, что это должно работать на одном сервере с одной удаленной БД, какова будет оптимальная реализация?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector