请php达人举个fsockopen post表单的例子

来源:百度知道 编辑:UC知道 时间:2024/05/26 13:10:36
我是新手,希望大家帮帮助,最好是带些注释,我试成功了追加50分
要求如下:
post变量到到这个页面http://bioinformatics.lcd-ustc.org/PPSP/results.php
变量如下eppSeq=LKIACSKVRGPVSGSPDSMNASRLS&SelectKinase_Option=3&stringency=1&submit=Submit+Request(这几个变量是我把表单的post改成get后在地址栏里得到的,不知道会不会有错)
我现在要用php模拟提交,然后反网站返回的结果保存在一个变量中(目的是在结果中提取我要的信息)
(表单提交页面http://bioinformatics.lcd-ustc.org/PPSP/,这是一个生物学网站,非病毒)

这个网站似乎有防抓取之类的设置,模拟post的结果和直接访问活动的内容有偏差,用于提前数据应该可以,试试下面这个,提交的内容可以改造成数组之类的...

<?php
function get_verify($url,$time_out = "60") {
$urlarr = parse_url($url);
$errno = "";
$errstr = "";
$transports = "";
if($urlarr["scheme"] == "https") {
$transports = "ssl://";
$urlarr["port"] = "443";
} else {
$transports = "tcp://";
$urlarr["port"] = "80";
}
$fp=@fsockopen($transports . $urlarr['host'],$urlarr['port'],$errno,$errstr,$time_out);
if(!$fp) {
die("ERROR: $errno - $errstr<br />\n");
} else {
fputs($fp, "POST ".$urlarr["path"]." HTTP/1.1\r\n");
fputs($fp, "Host: ".$urlarr["host"]."\r\n");
fputs($fp, "Con