php模拟from表单提交数据查询

 原网站没有移动端的信息查询页面,经过一番查找资料,可以用此方法查询数据,特此记录,以便以后查找和使用。

查询结果返回时包含大量的html代码,本想用正则去过滤掉没用的信息,奈何正则使用不明白所以按照页面查询结果信息用了

$preg = '#(<div>.*?</div>)#';
$arr = preg_split($preg, $body, -1,PREG_SPLIT_DELIM_CAPTURE);

也许会有更好的方法,欢迎留言谢谢!

 

<?php
/*
*php模拟from提交表单查询信息
*/
ini_set('date.timezone','Asia/Shanghai');
header("Content-Type: text/html; charset=UTF-8");

$bh = "1401738509";
$post_data = "bh=".$bh;
$length = strlen($post_data);
$url = "http://www.jilinshuiwu.com/sfcxwx.aspx?act=cx";
$host = "www.jilinshuiwu.com";
$port = "80";
$request.="POST ".$url." HTTP/1.1\r\n";
$request.="Host: ".$host."\r\n";
$request.="Content-type: application/x-www-form-urlencoded\r\n";
$request.="Accept: */*\r\n";
$request.="Accept-Charset: utf-8, gb2312\r\n";
$request.="Accept-Language: zh-cn, en;q=0.7\r\n";
$request.="Content-length: ".$length." \r\n";
$request.="Connection: close\r\n";
$request.="\r\n";
$request.=$post_data."\r\n";
$request.="\r\n";

$fp = fsockopen($host,$port);
fputs($fp, $request);
while(!feof($fp)) {
 $result .= fgets($fp, 1024);
}
fclose($fp);

$body= stristr($result,"\r\n\r\n");//???\r\n

$body=substr($body,4,strlen($body));//???header



$preg = '#(<div>.*?</div>)#';
$arr = preg_split($preg, $body, -1,PREG_SPLIT_DELIM_CAPTURE);
unset($arr[0]);//去掉前段html
unset ($arr[count($arr)]);//去掉页面后段html
print_r($arr);


?>

参考资料:

1、https://blog.csdn.net/xhhayward/article/details/77980478

2、https://bbs.csdn.net/topics/392434492?page=1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值