Имя: Пароль:
1C
1С v8
Выполнить PHP скрипт на 1С
0 tavro03
 
01.05.16
10:11
Всем привет!

Есть готовый класс на PHP:

define ('DEBUG_OK', true);
class CCheckMail
{
  var $timeout = 10;
  var $domain_rules = array ("aol.com", "bigfoot.com", "brain.net.pk", "breathemail.net",
                "compuserve.com", "dialnet.co.uk", "glocksoft.com", "home.com",
                "msn.com", "rocketmail.com", "uu.net", "yahoo.com", "yahoo.de");

  
  function execute ($email = ""){
    if (!$this->_is_valid_email ($email)) return false;
    $host = substr (strstr ($email, '@'), 1);

    if ($this->_check_domain_rules ($host)) return false;
    $host .= ".";

    if (getmxrr ($host, $mxhosts[0], $mxhosts[1]) == true)  array_multisort ($mxhosts[1], $mxhosts[0]);
    else { $mxhosts[0] = $host;
       $mxhosts[1] = 10;
     }
    if (DEBUG_OK) print_r ($mxhosts);

    $port = 25;
    $localhost = $_SERVER['HTTP_HOST'];
    $sender = 'info@' . $localhost;

    $result = false;
    $id = 0;
    while (!$result && $id < count ($mxhosts[0]))
    { if (function_exists ("fsockopen"))
         { if (DEBUG_OK) print_r ($id . " " . $mxhosts[0][$id]);
           if ($connection = fsockopen ($mxhosts[0][$id], $port, $errno, $error, $this->timeout))
          {
              fputs ($connection,"HELO $localhost\r\n"); // 250
              $data = fgets ($connection,1024);
              $response = substr ($data,0,1);
              if (DEBUG_OK) print_r ($data);
              if ($response == '2') // 200, 250 etc.
             {
                fputs ($connection,"MAIL FROM:<$sender>\r\n");
                $data = fgets($connection,1024);
                $response = substr ($data,0,1);
                if (DEBUG_OK) print_r ($data);
                if ($response == '2') // 200, 250 etc.
               {
                  fputs ($connection,"RCPT TO:<$email>\r\n");
                  $data = fgets($connection,1024);
                  $response = substr ($data,0,1);
                  if (DEBUG_OK) print_r ($data);
              if ($response == '2') // 200, 250 etc.
                 {
                    fputs ($connection,"data\r\n");
                    $data = fgets($connection,1024);
                    $response = substr ($data,0,1);
                    if (DEBUG_OK) print_r ($data);
                    if ($response == '2') // 200, 250 etc.
                   { $result = true; }
                     }
               }
             }
          fputs ($connection,"QUIT\r\n");
              fclose ($connection);
              if ($result) return true;
            }
       }
      else  break;
      $id++;
    } //while
    return false;
}
}


Пример вызова вышеуказанного класса на PHP:

$str='[email protected]'
$alter=new CCheckMail ();
print "E-mail: ".$str." - ".($alter->execute($str)?'существует':'не существует');

Принцип задаётся почта и она проверяется на существование.
Результатом выполнения будет сообщение: существует или не существует.

Ребята, как этот класс и вызов этого класса дергать из 1С ???
Видел на форумах что нужно делать через POST запрос, но там нужно сервер какой то указывать, название сайта и т.д.

У меня нет ни сайта, не сервера. Просто нужно выполнять этот скрипт.
1 4St
 
01.05.16
10:18
Поздними в локалке какой-нибудь denwer/lamp, сделай в нем сайт с одной страницей, а из 1с обращайся к ней.
Или попробуй пхп скрипт запускать через командную строку.
2 Лефмихалыч
 
01.05.16
10:33
устанавиваешь инетрпертатор php,  из 1С кастуешь КомандаСистемы("php.exe tvojscript.php");
3 Asmody
 
01.05.16
10:52
(0) очередного спам-бота пишешь?
4 Asmody
 
01.05.16
10:58
Кроме того, очевидно, что в (0) нерабочий кусок кода, древнего, как говно мамонта.
5 tavro03
 
01.05.16
11:35
(4) Спасибо за комментарий про качество PHP кода. Но всё же более производительное использование этого кода без интерпритатора PHP возможно в среде 1С?
6 Asmody
 
01.05.16
11:41
У меня нет слов!
А без компьютера код не пробовал выполнять?
7 b_ru
 
01.05.16
11:47
(5) Да, возможно. Перепиши на Си, скомпилируй и запускай экзешник.
8 tavro03
 
01.05.16
12:13
Ребята, а как через POST  запрос реализовать этот код?
9 4St
 
01.05.16
13:03
(8) что именно непонятно в (1)? На стороне 1с надо использовать объект httpзапрос.
10 xaozai
 
01.05.16
13:39
(8) Post запрос должен идти к серверу, на котором крутится php и размещен этот скрипт...
http://www.develplatform.com/2014/03/get-post-1-8.html
11 Rie
 
01.05.16
15:30
(8) POST-_запрос_ - _кому_ будет адресован?
12 APXi
 
01.05.16
15:39
Возможно всё! Только все упирается во время.
13 Rie
 
01.05.16
15:55
Что-то эта тема мне напоминает. Какую-то другую тему, тоже связанную со странной идеей проверки существования почтового адреса...
Программа "Пойди туда, не знаю, куда, принеси то, не знаю что" - бесполезна на любом языке. В том числе и на PHP.