Помогите получить ответ из функции.

feee

Новичок
PHP:
<?php   



function validEmail($email)
{   
    $isValid = true;
    
   $atIndex = strrpos($email, "@");
   if (is_bool($atIndex) && !$atIndex)
   {
       $isValid = false;
    
   }
   else
   {
      $domain = substr($email, $atIndex+1);
      $local = substr($email, 0, $atIndex);
      $localLen = strlen($local);
      $domainLen = strlen($domain);
      if ($localLen < 1 || $localLen > 64)
      {
         // local part length exceeded
         $isValid = false;
      }
      else if ($domainLen < 1 || $domainLen > 255)
      {
         // domain part length exceeded
         $isValid = false;
      }
      else if ($local[0] == '.' || $local[$localLen-1] == '.')
      {
         // local part starts or ends with '.'
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $local))
      {
         // local part has two consecutive dots
         $isValid = false;
      }
      else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
      {
         // character not valid in domain part
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $domain))
      {
         // domain part has two consecutive dots
         $isValid = false;
      }
      else if
(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
                 str_replace("\\\\","",$local)))
      {
         // character not valid in local part unless 
         // local part is quoted
         if (!preg_match('/^"(\\\\"|[^"])+"$/',
             str_replace("\\\\","",$local)))
         {
            $isValid = false;
         }
      }
      if ($isValid && !(checkdnsrr($domain,"MX") || 
 checkdnsrr($domain,"A")))
      {
         // domain not found in DNS
         $isValid = false;
      }
   }
       
   
    return $isValid;
    
 
}
  
  validEmail("[email protected]")

?>
Это код проверки верности e-mail адреса. Я не очень знаком с php. Больше по purebasicУ. Вопрос такой: мне нужно получить переменную из функции для выполнения следующего действия. Тоесть тут переменная $isValid принимает значение true or false. Но вынести её значение за приделы функции мне не удаётся.
 

craz

Нестандартное звание
Присвоение надо сделать.
$var = func($param); //var_dump($var);
 

feee

Новичок
А можно стразу в мой код вставить, а то я всё равно пока не понимаю где это применяется.
 

AmdY

Пью пиво
Команда форума
ой, не заметил что там ещё днс чекается, но эта строчка заменяет большую часть кода
но вам оказывается нужно простое

$isValid = validEmail("[email protected]")
 
  • Like
Реакции: feee

feee

Новичок
Не могли бы вы подсказать как разделить строку на отдельные слова. Допустим есть:
PHP:
$stirng = "text1/text2/text3";
А надо получит:
PHP:
$text1="text1"
$text2="text2"
$text3="text3"
 

Фанат

oncle terrible
Команда форума
так отвечать невежливо.
в такой форме можно общаться со своими друзьями или родственниками.
обращаясь же за помощью к незнакомым людям, следует вежливо, с готовностью, и подробно отвечать на уточняющие вопросы, от которых может зависеть ответ.

попробуй ещё раз.
 

feee

Новичок
Пишу инсталлятор на purebasiKE с регистрацией и авторизацией через e-mail. Использовал стандартную процедуру mail ($to, $subject, $message, $headers); однако столкнулся с тем что mail.ru банят мои письма. Решил сделать отправку писем через авторизацию в почтовых сервисов, однако проблема периодически появляется снова. Поэтому решил делать отправку с нескольких разных сервисов и множества аккаунтов (около20). Аккаунт выбирается в случайном порядке. Поэтому создал .txt документ в виде:
mail1/smtp.mail.ru/login1
mail2/mail.rambler.ru/login2
mail3/smtp.yandex.ru/login3
mail4/smtp.qip.ru/login4

Для извлечения из файла беру код:
PHP:
$texts = file ("spisokmail.txt");  
$kolvo = Count($texts)-1;   
$index = rand(0,$kolvo);    
$str = $texts[$index];
После этого переменную $str надо разделить на переменные $mail=,$smtp=,login=

Надеюсь ответ максимально развёрнут
 

Фанат

oncle terrible
Команда форума
Мда.
Спасибо, конечно, за развёрнутый ответ, но как-то мне даже неудобно.
С одной стороны, вопрос примитивный, и в гугле ответ находится на 5 секунд.
С другой, такое ощущение, что сегодня вечером все безумные изобретатели велосипедов сговорились собраться на этом форуме.
В общем, прошу прощения, больше в этот топик не вмешиваюсь.
 

feee

Новичок
Может быть будут у вас соображения по данному поводу? Готов выслушать сторонние мнение.
 

WMix

герр M:)ller
Партнер клуба
я слыхал, что когда пользуешься базами данных, можно не разбивать строку на части... можно также записать на пару десятков больше информации и позволяет выбирать случайную запись..
 

feee

Новичок
я слыхал, что когда пользуешься базами данных, можно не разбивать строку на части... можно также записать на пару десятков больше информации и позволяет выбирать случайную запись..
Это понятно, но прикручивать сюда БД думаю бессмысленно, всего 20-30 учётных записей.
 

WMix

герр M:)ller
Партнер клуба
ну тогда возможно лучше взять формат данных типа JSON или CSV на крайний случай, ну в смысле то что уже придумано и работает...
 

С.

Продвинутый новичок
Поэтому создал .txt документ в виде:
mail1/smtp.mail.ru/login1
mail2/mail.rambler.ru/login2
mail3/smtp.yandex.ru/login3
mail4/smtp.qip.ru/login4
Не соеденяй то, что не сможешь потом разделить. Сделай РНР файл с уже разделенными данными такого типа:
PHP:
$settings[]= array('mail1','smtp.mail.ru','login1');
$settings[]= array('mail2','mail.rambler.ru','login2');
$settings[]= array('mail3','smtp.yandex.ru','login3');
$settings[]= array('mail4','smtp.qip.ru','login4');
и балуйся себе на здоровье.
 
  • Like
Реакции: WMix
Сверху