为了实现注册机才写的教程,为了批量注册一个网站,注册带有验证码,幸好是文本验证码,但是有session验证,于是POST必须携带cookie。代码如下。
<?php class AutoCurl{ private $curl; private $strCookie; public $url; public $data; function __construct(){ $this->curl=curl_init(); $this->strCookie='tmp.cookie'; if(!file_exists('tmp.cookie')){ $ckfile = fopen("tmp.cookie", "w") or die("Unable to open file!"); fclose($ckfile); } } function __destruct(){ curl_close($this->curl); } function CurlGet(){ curl_setopt($this->curl, CURLOPT_URL, $this->url); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true) ; curl_setopt($this->curl, CURLOPT_BINARYTRANSFER, true) ; //important curl_setopt($this->curl,CURLOPT_CONNECTTIMEOUT, 5); //save_cookie curl_setopt($this->curl,CURLOPT_COOKIEJAR,$this->strCookie); $output = curl_exec($this->curl) ; return $output; } function CurlPost(){ curl_setopt($this->curl,CURLOPT_POST,1); //send_cookie curl_setopt($this->curl,CURLOPT_COOKIEFILE, $this->strCookie); curl_setopt($this->curl,CURLOPT_RETURNTRANSFER, 1); curl_setopt($this->curl,CURLOPT_URL,$this->url); curl_setopt($this->curl,CURLOPT_POSTFIELDS,$this->data); $output = curl_exec($this->curl) ; return $output; } } //实例化一个会话 $newcurl= new AutoCurl(); //第一步GET获取Cookie和验证码 //设置登录填充的Url $newcurl->url='http://www.jinghong.in/index.php?m=user&mod=reg'; //发送Get $result=$newcurl->CurlGet(); //获取验证码 if(preg_match('/\<b\>(.*)\<\/b\>/U',$result, $matches)){ $code=$matches[1]; } //第二步POST提交注册 //设置登录提交的Url $newcurl->url='http://www.jinghong.in/index.php?m=user&mod=reg&act=ok'; //设置发送POST数据 $newcurl->data=array("name" =>'a'.rand(pow(10,(6-1)), pow(10,6)-1),"sj" => "1".rand(pow(10,(11-1)), pow(10,11)-1),"email" =>rand(pow(10,(5-1)), pow(10,5)-1)."@qq.com","pass" => rand(pow(10,(7-1)), pow(10,7)-1)."qqcom","bzyzm" => $code); //发送Post $result=$newcurl->CurlPost(); var_dump($result); ?>
在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 = filter_input(INPUT_POST...
php调用Webservice基本语法如下:$url ='xxxxxxx.cn' //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...
先在centos安装openssl,然后开始://生成私钥openssl genrsa -out rsa_private_key.pem 1024//生成公钥openssl rsa -in rsa_private_key.pem&...
开发com组件可以用c++,vc++,net,我比较熟悉net,演示用dnet(1).创建项目:启动vs2017,新建项目,选择Visual C# ->Windows桌面->类库通用windows(2). 修改Com项目:点击 项目->项目属性,再点击应用程序->程序集信息,...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
posix_ttyname - 获取当前终端设备名称。<?php var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...