我已经编写了一个curl函数用于从网站获取验证码,然后在我的网站上显示。用户将输入值和验证码并提交。 我将从用户获得价值峰会并重新发布到网站以获取数据信息。 在我编写一个文件之前,它可以工作。但现在我把它分成三个文件只是复制代码,但现在它没有用。
请帮帮我。 我的代码卷曲功能
private function makeCurl($url, $data = null) {
$ch = curl_init();
$headers = array();
$headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers[] = 'Connection: keep-alive';
$headers[] = '_eosAjax: xml';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:41.0) Gecko/20100101 Firefox/41.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIE, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR,$this->myCookie);
curl_setopt($ch, CURLOPT_COOKIEFILE,$this->myCookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
if($data != null) {
$data_string = "";
foreach($data as $key=>$value) { $data_string .= $key.'='.$value.'&'; }
rtrim($data_string, '&');
curl_setopt($ch,CURLOPT_POST, TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data_string);
}
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
绘制验证码功能
public function drawCatcha() {
$result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_drawValidCode.action");
$ImageCaptcha=base64_encode($result);
return "data:image/jpeg;base64,".$ImageCaptcha;
}
检查验证码功能
private function checkCaptcha($code) {
$data = array(
"submitType"=>1,
"ajax"=>"<?xml version=\"1.0\" encoding=\"utf-8\"?><root><params><param><key>validcode</key><value>{$code}</value></param></params><data></data></root>"
);
$result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_validCode.action", $data);
return $result;
}
获取信息功能
public function getInfo($code, $port) {
echo $this->checkCaptcha($code);
$data = array(
"submitType" => 2,
"ajax" => "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><params><param><key>vYjhm</key><value>RM649904215CN</value></param><param><key>vYjhmLst</key><value>'RM649904215CN'</value></param><param><key>validcode</key><value>{$code}</value></param></params> <data><criteria><_entity></_entity></criteria><page><begin>0</begin><length>100</length><count>-1</count><isCount>true</isCount></page></data></root>"
);
$result = $this->makeCurl(HOST."zdxt/gjyjqcgzcx/gjyjqcgzcx_gjyjqcgzcxDqztQueryPage.action", $data);
$info = simplexml_load_string($result);
return $info;
}
我现在有三个档案。具有所有功能的Post.php与curl一起工作。 input.php显示表单并调用draw captcha。和result.php调用获取信息 还有我想要获取信息的网站 http://intmail.183.com.cn/zdxt/jsp/zhdd/gjyjgzcx/gjyjqcgzcx/gjyjqcgzcx.jsp