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

  • Автор темы Автор темы feee
  • Дата начала Дата начала

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. Но вынести её значение за приделы функции мне не удаётся.
 
Присвоение надо сделать.
$var = func($param); //var_dump($var);
 
А можно стразу в мой код вставить, а то я всё равно пока не понимаю где это применяется.
 
ой, не заметил что там ещё днс чекается, но эта строчка заменяет большую часть кода
но вам оказывается нужно простое

$isValid = validEmail("[email protected]")
 
  • Like
Реакции: feee
Не могли бы вы подсказать как разделить строку на отдельные слова. Допустим есть:
PHP:
$stirng = "text1/text2/text3";
А надо получит:
PHP:
$text1="text1"
$text2="text2"
$text3="text3"
 
так отвечать невежливо.
в такой форме можно общаться со своими друзьями или родственниками.
обращаясь же за помощью к незнакомым людям, следует вежливо, с готовностью, и подробно отвечать на уточняющие вопросы, от которых может зависеть ответ.

попробуй ещё раз.
 
Пишу инсталлятор на 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=

Надеюсь ответ максимально развёрнут
 
Мда.
Спасибо, конечно, за развёрнутый ответ, но как-то мне даже неудобно.
С одной стороны, вопрос примитивный, и в гугле ответ находится на 5 секунд.
С другой, такое ощущение, что сегодня вечером все безумные изобретатели велосипедов сговорились собраться на этом форуме.
В общем, прошу прощения, больше в этот топик не вмешиваюсь.
 
Может быть будут у вас соображения по данному поводу? Готов выслушать сторонние мнение.
 
я слыхал, что когда пользуешься базами данных, можно не разбивать строку на части... можно также записать на пару десятков больше информации и позволяет выбирать случайную запись..
 
я слыхал, что когда пользуешься базами данных, можно не разбивать строку на части... можно также записать на пару десятков больше информации и позволяет выбирать случайную запись..
Это понятно, но прикручивать сюда БД думаю бессмысленно, всего 20-30 учётных записей.
 
ну тогда возможно лучше взять формат данных типа 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
Сверху