karapet
Постоялец
- Регистрация
- 9 Сен 2008
- Сообщения
- 169
- Реакции
- 105
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
говнокод конечно, но если я правильно понял, то можно так попробовать
PHP:
<?php
$array = array();
$max_count = 1000;
$array[] = 'lopuh@gmail.com';
$array[] = 'odoinodin@gmail.com';
$array[] = 'mymail@gmail.com';
$all_emails = array();
foreach ($array as $email) {
$emails = generateDot($email);
$all_emails = array_merge($all_emails,$emails);
if(count($all_emails) >= $max_count) break;
}
print_r($all_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;
}
?>
где $max_count - не больше этого кол-ва