Расставить точки в гмейлах

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Хочу написать функцию, которая будет расставлять точки. Надо как-то рекурсивно обходить чтоли хз.
На входе-
mymail@gmail.com
На выходе
m.ymail@gmail.com
m.y.mail@gmail.com
m.y.m.ail@gmail.com
m.y.m.a.il@gmail.com
m.y.m.a.i.l@gmail.com
m.y.mail@gmail.com
m.y.m.ail@gmail.com
m.y.m.a.i.l@gmail.com
Ну и так далее. Использовать все варианты расстановки точек внутри слова. Подскажите как правильно такой цикл сделать
 
утилита есть от zennoposter - именно это производит
если конечно не из чисто спортивного интереса желание написанать функцию
 

Вложения

  • GmailDotGenerator.rar
    5,1 KB · Просмотры: 21
в утилиту от зеннопостера надо вводить по одному мылу. не гут
 
Зачем рекурсия? о.О Можно 2мя вложенными циклами к примеру сделать.
1ый по всем мылам, 2ой по всему слову.... Или код нуна?
 
PHP:
<?php

$array = array();

$array[] = 'odoinodin@gmail.com';
$array[] = 'lopuh@gmail.com';
$array[] = 'mymail@gmail.com';


foreach ($array as $email) {
	$emails = generateDot($email);
	print_r($emails);
}

function generateDot($email) {
	$emails = array();
	$i = 1;
	while ($email[$i] != '@') {
		$email = substr($email, 0, $i).'.'.substr($email, $i);
		$emails[] = $email;
		$i+=2;
	}
	return $emails;
}
?>


Выдает
Код:
Array
(
    [0] => o.doinodin@gmail.com
    [1] => o.d.oinodin@gmail.com
    [2] => o.d.o.inodin@gmail.com
    [3] => o.d.o.i.nodin@gmail.com
    [4] => o.d.o.i.n.odin@gmail.com
    [5] => o.d.o.i.n.o.din@gmail.com
    [6] => o.d.o.i.n.o.d.in@gmail.com
    [7] => o.d.o.i.n.o.d.i.n@gmail.com
)
Array
(
    [0] => l.opuh@gmail.com
    [1] => l.o.puh@gmail.com
    [2] => l.o.p.uh@gmail.com
    [3] => l.o.p.u.h@gmail.com
)
Array
(
    [0] => m.ymail@gmail.com
    [1] => m.y.mail@gmail.com
    [2] => m.y.m.ail@gmail.com
    [3] => m.y.m.a.il@gmail.com
    [4] => m.y.m.a.i.l@gmail.com
)


Так ты хотел?
 
Зачем рекурсия? о.О Можно 2мя вложенными циклами к примеру сделать.
как?
Ну примерно. Только допустим

[0] => l.opuh@gmail.com
[1] => l.o.puh@gmail.com
[2] => l.o.p.uh@gmail.com
[3] => l.o.p.u.h@gmail.com

к этому еще можно добавить кучу вариантов, как расставить точки
Код:
l.o.puh@gmail.com
l.o.pu.h@gmail.com
lo.puh@gmail.com
lo.pu.h@gmail.com
lop.uh@gmail.com
l.o.p.u.h@gmail.com
l.op.u.h@gmail.com
И тд.
 
Как ты показал в первом посте, так и сделал. Сам сиди и расчитывай вариатность, как расчитаешь, отпиши, я тебе сделаю функцию.
 
PHP:
<?php

$array = array(); 

$array[] = 'odoinodin@gmail.com'; 
$array[] = 'lopuh@gmail.com'; 
$array[] = 'mymail@gmail.com'; 


foreach ($array as $email) { 
    $emails = generateDot($email); 
    print_r($emails);
} 

function generateDot($email) { 
    $emails = array(); 
    list($name,$serv)=explode("@",$email);
    $sdvig=strlen($name)-1;
    $dec= ((1<<$sdvig)-1);
    for($q=1;$q<=$dec;$q++){
        $names=$name;
        $bin=sprintf("%".$sdvig."d",decbin($q));
        $lenbin=$sdvig-1;
        for($w=$lenbin;$w>=0;$w--){
            if($bin[$w]==1)
                $names=substr($names, 0, $w+1).'.'.substr($names, $w+1);
        }
        $emails[]=$names."@".$serv;
    }
    return $emails; 
} 
?>
выводит:
Код:
Array
(
    [0] => odoinodi.n@gmail.com
    [1] => odoinod.in@gmail.com
    [2] => odoinod.i.n@gmail.com
    [3] => odoino.din@gmail.com
    [4] => odoino.di.n@gmail.com
    [5] => odoino.d.in@gmail.com
    [6] => odoino.d.i.n@gmail.com
    [7] => odoin.odin@gmail.com
    [8] => odoin.odi.n@gmail.com
    [9] => odoin.od.in@gmail.com
    [10] => odoin.od.i.n@gmail.com
    [11] => odoin.o.din@gmail.com
    [12] => odoin.o.di.n@gmail.com
    [13] => odoin.o.d.in@gmail.com
    [14] => odoin.o.d.i.n@gmail.com
    [15] => odoi.nodin@gmail.com
    [16] => odoi.nodi.n@gmail.com
    [17] => odoi.nod.in@gmail.com
    [18] => odoi.nod.i.n@gmail.com
    [19] => odoi.no.din@gmail.com
    [20] => odoi.no.di.n@gmail.com
    [21] => odoi.no.d.in@gmail.com
    [22] => odoi.no.d.i.n@gmail.com
    [23] => odoi.n.odin@gmail.com
    [24] => odoi.n.odi.n@gmail.com
    [25] => odoi.n.od.in@gmail.com
    [26] => odoi.n.od.i.n@gmail.com
    [27] => odoi.n.o.din@gmail.com
    [28] => odoi.n.o.di.n@gmail.com
    [29] => odoi.n.o.d.in@gmail.com
    [30] => odoi.n.o.d.i.n@gmail.com
    [31] => odo.inodin@gmail.com
    [32] => odo.inodi.n@gmail.com
    [33] => odo.inod.in@gmail.com
    [34] => odo.inod.i.n@gmail.com
    [35] => odo.ino.din@gmail.com
    [36] => odo.ino.di.n@gmail.com
    [37] => odo.ino.d.in@gmail.com
    [38] => odo.ino.d.i.n@gmail.com
    [39] => odo.in.odin@gmail.com
    [40] => odo.in.odi.n@gmail.com
    [41] => odo.in.od.in@gmail.com
    [42] => odo.in.od.i.n@gmail.com
    [43] => odo.in.o.din@gmail.com
    [44] => odo.in.o.di.n@gmail.com
    [45] => odo.in.o.d.in@gmail.com
    [46] => odo.in.o.d.i.n@gmail.com
    [47] => odo.i.nodin@gmail.com
    [48] => odo.i.nodi.n@gmail.com
    [49] => odo.i.nod.in@gmail.com
    [50] => odo.i.nod.i.n@gmail.com
    [51] => odo.i.no.din@gmail.com
    [52] => odo.i.no.di.n@gmail.com
    [53] => odo.i.no.d.in@gmail.com
    [54] => odo.i.no.d.i.n@gmail.com
    [55] => odo.i.n.odin@gmail.com
    [56] => odo.i.n.odi.n@gmail.com
    [57] => odo.i.n.od.in@gmail.com
    [58] => odo.i.n.od.i.n@gmail.com
    [59] => odo.i.n.o.din@gmail.com
    [60] => odo.i.n.o.di.n@gmail.com
    [61] => odo.i.n.o.d.in@gmail.com
    [62] => odo.i.n.o.d.i.n@gmail.com
    [63] => od.oinodin@gmail.com
    [64] => od.oinodi.n@gmail.com
    [65] => od.oinod.in@gmail.com
    [66] => od.oinod.i.n@gmail.com
    [67] => od.oino.din@gmail.com
    [68] => od.oino.di.n@gmail.com
    [69] => od.oino.d.in@gmail.com
    [70] => od.oino.d.i.n@gmail.com
    [71] => od.oin.odin@gmail.com
    [72] => od.oin.odi.n@gmail.com
    [73] => od.oin.od.in@gmail.com
    [74] => od.oin.od.i.n@gmail.com
    [75] => od.oin.o.din@gmail.com
    [76] => od.oin.o.di.n@gmail.com
    [77] => od.oin.o.d.in@gmail.com
    [78] => od.oin.o.d.i.n@gmail.com
    [79] => od.oi.nodin@gmail.com
    [80] => od.oi.nodi.n@gmail.com
    [81] => od.oi.nod.in@gmail.com
    [82] => od.oi.nod.i.n@gmail.com
    [83] => od.oi.no.din@gmail.com
    [84] => od.oi.no.di.n@gmail.com
    [85] => od.oi.no.d.in@gmail.com
    [86] => od.oi.no.d.i.n@gmail.com
    [87] => od.oi.n.odin@gmail.com
    [88] => od.oi.n.odi.n@gmail.com
    [89] => od.oi.n.od.in@gmail.com
    [90] => od.oi.n.od.i.n@gmail.com
    [91] => od.oi.n.o.din@gmail.com
    [92] => od.oi.n.o.di.n@gmail.com
    [93] => od.oi.n.o.d.in@gmail.com
    [94] => od.oi.n.o.d.i.n@gmail.com
    [95] => od.o.inodin@gmail.com
    [96] => od.o.inodi.n@gmail.com
    [97] => od.o.inod.in@gmail.com
    [98] => od.o.inod.i.n@gmail.com
    [99] => od.o.ino.din@gmail.com
    [100] => od.o.ino.di.n@gmail.com
    [101] => od.o.ino.d.in@gmail.com
    [102] => od.o.ino.d.i.n@gmail.com
    [103] => od.o.in.odin@gmail.com
    [104] => od.o.in.odi.n@gmail.com
    [105] => od.o.in.od.in@gmail.com
    [106] => od.o.in.od.i.n@gmail.com
    [107] => od.o.in.o.din@gmail.com
    [108] => od.o.in.o.di.n@gmail.com
    [109] => od.o.in.o.d.in@gmail.com
    [110] => od.o.in.o.d.i.n@gmail.com
    [111] => od.o.i.nodin@gmail.com
    [112] => od.o.i.nodi.n@gmail.com
    [113] => od.o.i.nod.in@gmail.com
    [114] => od.o.i.nod.i.n@gmail.com
    [115] => od.o.i.no.din@gmail.com
    [116] => od.o.i.no.di.n@gmail.com
    [117] => od.o.i.no.d.in@gmail.com
    [118] => od.o.i.no.d.i.n@gmail.com
    [119] => od.o.i.n.odin@gmail.com
    [120] => od.o.i.n.odi.n@gmail.com
    [121] => od.o.i.n.od.in@gmail.com
    [122] => od.o.i.n.od.i.n@gmail.com
    [123] => od.o.i.n.o.din@gmail.com
    [124] => od.o.i.n.o.di.n@gmail.com
    [125] => od.o.i.n.o.d.in@gmail.com
    [126] => od.o.i.n.o.d.i.n@gmail.com
    [127] => o.doinodin@gmail.com
    [128] => o.doinodi.n@gmail.com
    [129] => o.doinod.in@gmail.com
    [130] => o.doinod.i.n@gmail.com
    [131] => o.doino.din@gmail.com
    [132] => o.doino.di.n@gmail.com
    [133] => o.doino.d.in@gmail.com
    [134] => o.doino.d.i.n@gmail.com
    [135] => o.doin.odin@gmail.com
    [136] => o.doin.odi.n@gmail.com
    [137] => o.doin.od.in@gmail.com
    [138] => o.doin.od.i.n@gmail.com
    [139] => o.doin.o.din@gmail.com
    [140] => o.doin.o.di.n@gmail.com
    [141] => o.doin.o.d.in@gmail.com
    [142] => o.doin.o.d.i.n@gmail.com
    [143] => o.doi.nodin@gmail.com
    [144] => o.doi.nodi.n@gmail.com
    [145] => o.doi.nod.in@gmail.com
    [146] => o.doi.nod.i.n@gmail.com
    [147] => o.doi.no.din@gmail.com
    [148] => o.doi.no.di.n@gmail.com
    [149] => o.doi.no.d.in@gmail.com
    [150] => o.doi.no.d.i.n@gmail.com
    [151] => o.doi.n.odin@gmail.com
    [152] => o.doi.n.odi.n@gmail.com
    [153] => o.doi.n.od.in@gmail.com
    [154] => o.doi.n.od.i.n@gmail.com
    [155] => o.doi.n.o.din@gmail.com
    [156] => o.doi.n.o.di.n@gmail.com
    [157] => o.doi.n.o.d.in@gmail.com
    [158] => o.doi.n.o.d.i.n@gmail.com
    [159] => o.do.inodin@gmail.com
    [160] => o.do.inodi.n@gmail.com
    [161] => o.do.inod.in@gmail.com
    [162] => o.do.inod.i.n@gmail.com
    [163] => o.do.ino.din@gmail.com
    [164] => o.do.ino.di.n@gmail.com
    [165] => o.do.ino.d.in@gmail.com
    [166] => o.do.ino.d.i.n@gmail.com
    [167] => o.do.in.odin@gmail.com
    [168] => o.do.in.odi.n@gmail.com
    [169] => o.do.in.od.in@gmail.com
    [170] => o.do.in.od.i.n@gmail.com
    [171] => o.do.in.o.din@gmail.com
    [172] => o.do.in.o.di.n@gmail.com
    [173] => o.do.in.o.d.in@gmail.com
    [174] => o.do.in.o.d.i.n@gmail.com
    [175] => o.do.i.nodin@gmail.com
    [176] => o.do.i.nodi.n@gmail.com
    [177] => o.do.i.nod.in@gmail.com
    [178] => o.do.i.nod.i.n@gmail.com
    [179] => o.do.i.no.din@gmail.com
    [180] => o.do.i.no.di.n@gmail.com
    [181] => o.do.i.no.d.in@gmail.com
    [182] => o.do.i.no.d.i.n@gmail.com
    [183] => o.do.i.n.odin@gmail.com
    [184] => o.do.i.n.odi.n@gmail.com
    [185] => o.do.i.n.od.in@gmail.com
    [186] => o.do.i.n.od.i.n@gmail.com
    [187] => o.do.i.n.o.din@gmail.com
    [188] => o.do.i.n.o.di.n@gmail.com
    [189] => o.do.i.n.o.d.in@gmail.com
    [190] => o.do.i.n.o.d.i.n@gmail.com
    [191] => o.d.oinodin@gmail.com
    [192] => o.d.oinodi.n@gmail.com
    [193] => o.d.oinod.in@gmail.com
    [194] => o.d.oinod.i.n@gmail.com
    [195] => o.d.oino.din@gmail.com
    [196] => o.d.oino.di.n@gmail.com
    [197] => o.d.oino.d.in@gmail.com
    [198] => o.d.oino.d.i.n@gmail.com
    [199] => o.d.oin.odin@gmail.com
    [200] => o.d.oin.odi.n@gmail.com
    [201] => o.d.oin.od.in@gmail.com
    [202] => o.d.oin.od.i.n@gmail.com
    [203] => o.d.oin.o.din@gmail.com
    [204] => o.d.oin.o.di.n@gmail.com
    [205] => o.d.oin.o.d.in@gmail.com
    [206] => o.d.oin.o.d.i.n@gmail.com
    [207] => o.d.oi.nodin@gmail.com
    [208] => o.d.oi.nodi.n@gmail.com
    [209] => o.d.oi.nod.in@gmail.com
    [210] => o.d.oi.nod.i.n@gmail.com
    [211] => o.d.oi.no.din@gmail.com
    [212] => o.d.oi.no.di.n@gmail.com
    [213] => o.d.oi.no.d.in@gmail.com
    [214] => o.d.oi.no.d.i.n@gmail.com
    [215] => o.d.oi.n.odin@gmail.com
    [216] => o.d.oi.n.odi.n@gmail.com
    [217] => o.d.oi.n.od.in@gmail.com
    [218] => o.d.oi.n.od.i.n@gmail.com
    [219] => o.d.oi.n.o.din@gmail.com
    [220] => o.d.oi.n.o.di.n@gmail.com
    [221] => o.d.oi.n.o.d.in@gmail.com
    [222] => o.d.oi.n.o.d.i.n@gmail.com
    [223] => o.d.o.inodin@gmail.com
    [224] => o.d.o.inodi.n@gmail.com
    [225] => o.d.o.inod.in@gmail.com
    [226] => o.d.o.inod.i.n@gmail.com
    [227] => o.d.o.ino.din@gmail.com
    [228] => o.d.o.ino.di.n@gmail.com
    [229] => o.d.o.ino.d.in@gmail.com
    [230] => o.d.o.ino.d.i.n@gmail.com
    [231] => o.d.o.in.odin@gmail.com
    [232] => o.d.o.in.odi.n@gmail.com
    [233] => o.d.o.in.od.in@gmail.com
    [234] => o.d.o.in.od.i.n@gmail.com
    [235] => o.d.o.in.o.din@gmail.com
    [236] => o.d.o.in.o.di.n@gmail.com
    [237] => o.d.o.in.o.d.in@gmail.com
    [238] => o.d.o.in.o.d.i.n@gmail.com
    [239] => o.d.o.i.nodin@gmail.com
    [240] => o.d.o.i.nodi.n@gmail.com
    [241] => o.d.o.i.nod.in@gmail.com
    [242] => o.d.o.i.nod.i.n@gmail.com
    [243] => o.d.o.i.no.din@gmail.com
    [244] => o.d.o.i.no.di.n@gmail.com
    [245] => o.d.o.i.no.d.in@gmail.com
    [246] => o.d.o.i.no.d.i.n@gmail.com
    [247] => o.d.o.i.n.odin@gmail.com
    [248] => o.d.o.i.n.odi.n@gmail.com
    [249] => o.d.o.i.n.od.in@gmail.com
    [250] => o.d.o.i.n.od.i.n@gmail.com
    [251] => o.d.o.i.n.o.din@gmail.com
    [252] => o.d.o.i.n.o.di.n@gmail.com
    [253] => o.d.o.i.n.o.d.in@gmail.com
    [254] => o.d.o.i.n.o.d.i.n@gmail.com
)
Array
(
    [0] => lopu.h@gmail.com
    [1] => lop.uh@gmail.com
    [2] => lop.u.h@gmail.com
    [3] => lo.puh@gmail.com
    [4] => lo.pu.h@gmail.com
    [5] => lo.p.uh@gmail.com
    [6] => lo.p.u.h@gmail.com
    [7] => l.opuh@gmail.com
    [8] => l.opu.h@gmail.com
    [9] => l.op.uh@gmail.com
    [10] => l.op.u.h@gmail.com
    [11] => l.o.puh@gmail.com
    [12] => l.o.pu.h@gmail.com
    [13] => l.o.p.uh@gmail.com
    [14] => l.o.p.u.h@gmail.com
)
Array
(
    [0] => mymai.l@gmail.com
    [1] => myma.il@gmail.com
    [2] => myma.i.l@gmail.com
    [3] => mym.ail@gmail.com
    [4] => mym.ai.l@gmail.com
    [5] => mym.a.il@gmail.com
    [6] => mym.a.i.l@gmail.com
    [7] => my.mail@gmail.com
    [8] => my.mai.l@gmail.com
    [9] => my.ma.il@gmail.com
    [10] => my.ma.i.l@gmail.com
    [11] => my.m.ail@gmail.com
    [12] => my.m.ai.l@gmail.com
    [13] => my.m.a.il@gmail.com
    [14] => my.m.a.i.l@gmail.com
    [15] => m.ymail@gmail.com
    [16] => m.ymai.l@gmail.com
    [17] => m.yma.il@gmail.com
    [18] => m.yma.i.l@gmail.com
    [19] => m.ym.ail@gmail.com
    [20] => m.ym.ai.l@gmail.com
    [21] => m.ym.a.il@gmail.com
    [22] => m.ym.a.i.l@gmail.com
    [23] => m.y.mail@gmail.com
    [24] => m.y.mai.l@gmail.com
    [25] => m.y.ma.il@gmail.com
    [26] => m.y.ma.i.l@gmail.com
    [27] => m.y.m.ail@gmail.com
    [28] => m.y.m.ai.l@gmail.com
    [29] => m.y.m.a.il@gmail.com
    [30] => m.y.m.a.i.l@gmail.com
)
P.S.: количество всех возможных вариантов рассчитывается так: 2^(длина слова - 1) - 1
ну если еще учитывать вариант без точек, тогда: 2^(длина слова - 1)
 
MONtrade подскажи, а как ограничить количество emails в массиве.

Вывожу
PHP:
$emails = array_rand($emails);
echo $emails;

Просто долго думает и выдает такое

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in func_dotgmail.php on line 21
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху