21,886
社区成员
发帖
与我相关
我的任务
分享
<?PHP
$url = "https://login.uconn.edu/cas/login?service=http%3a%2f%2fezproxy.lib.uconn.edu%2flogin%3fqurl%3dezp.2aHR0cHM6Ly9zY2lmaW5kZXIuY2FzLm9yZw--";//远程文档地址,注意这里可以是HTTPS的。
$ch = curl_init();//初始化一个cURL会话
curl_setopt($ch, CURLOPT_URL,$url);//需要获取的URL地址
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//禁用后cURL将终止从服务端进行验证。?
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//检查服务器SSL证书中是否存在一个公用名?
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。非常有用!有时候用true代替1
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);//尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。
$result = curl_exec($ch);//如果不选择上面的CURLOPT_RETURNTRANSFER, 1,这里直接输出,%resulet的值将为1.
//echo $result;//用文件流的目的是截取其中的内容
preg_match('/<input.+value\=\"LT-(.*)\" \/>/i',$result,$match); //preg_match正则获取特定字符
//echo $match[1]; //测试用
ob_start();
echo <<< HTML
<form onSubmit="doSubmit(this);" method="post" name="form1" action="$url">
<input name="username" class="required" tabindex="1" accesskey="n" type="text" value="111" size="18" autocomplete="false"/>
<input name="password" class="required" tabindex="2" accesskey="p" type="password" value="222" size="18" autocomplete="off"/>
<input id="warn" name="warn" value="true" tabindex="3" accesskey="w" type="checkbox" />
<input type="hidden" name="lt" value="LT-$match[1]" />
<input type="hidden" name="execution" value="e4s1" />
<input type="hidden" name="_eventId" value="submit" />
<input accesskey="l" type="submit" value="Send your login information">
</form>
<script>
document.forms[0].submit();
</script>
HTML;
ob_end_flush();
?>