如何在PHP中发布值并获得响应

时间:2017-12-09 00:14:19

标签: php curl post

我想使用email-checker进行电子邮件验证。我想发布emailid,我想将其从发布的页面中撤回,无论哪个答案是BAD或SUCCESS。发布的页面是https://email-checker.net/check

这是我的代码:

$curl_connection = curl_init();
curl_setopt($curl_connection, CURLOPT_URL, 'https://www.bulkemailchecker.com/free-email-checker/');
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_FRESH_CONNECT,true);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_HEADER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
$data=curl_exec($curl_connection);

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

首先向网址发出GET请求,在标题中您将收到一个Cookie会话ID,在html中,您将收到一个名为_csrf的{​​{3}},同时保存两者,并创建一个新的使用带有https://email-checker.net/check编码的HTTP POST请求,在email中使用cookie会话(恰当地)命名为application/x-www-urlencoded,同时使用cookie会话和csrf令牌以及电子邮件。现在,您的答案将出现在您收到的带有results-wrapper的html元素的文字内容中。

使用CSRF token的示例实现:

<?php
declare(strict_types = 1);
const EMAIL = 'webmaster@hotmail.com';
require_once ('hhb_.inc.php');
$hc = new hhb_curl ( '', true );
$html = $hc->exec ( 'https://email-checker.net' )->getStdOut ();
$domd = @DOMDocument::loadHTML ( $html );
$xp = new DOMXPath ( $domd );
$csrf_token = $xp->query ( '//input[@name="_csrf"]' )->item ( 0 )->getAttribute ( "value" );
$html = $hc->setopt_array ( array (
        CURLOPT_URL => 'https://email-checker.net/check',
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => http_build_query ( array (
                '_csrf' => $csrf_token,
                'email' => EMAIL 
        ) ) 
) )->exec ()->getStdOut ();
$domd = @DOMDocument::loadHTML ( $html );
$xp = new DOMXPath ( $domd );
$result = trim ( $xp->query ( '//*[@id="results-wrapper"]' )->item ( 0 )->textContent );
var_dump ( $result );

目前输出:string(30) "OK The email address is valid." - 表示webmaster@hotmail.com有效。 (见第3行)

  • 警告,在不到一小时的5次尝试后,您将获得输出Limit Exceeded Only 5 lookups per hour is allowed. Try Premium Plan

  • 警告,结果似乎非常不可靠。如果您确实需要验证电子邮件地址,请将电子邮件地址发送到电子邮件中。