700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 通过curl模拟post和get方式提交的表单类

通过curl模拟post和get方式提交的表单类

时间:2023-08-19 23:49:23

相关推荐

通过curl模拟post和get方式提交的表单类

php教程|php手册

curl,post,get,表单

php教程-php手册

最近做项目,后台已经做好了但是前台的模版还没下来,所以测试比较麻烦。于是写了个简单的脚本通过curl的方式模拟表单提交。可以通过数组和字符串两种方式提交数据。

dns代理服务器源码,vscode联网,ubuntu 启动kvm,出现tomcat,sqlite 表名,马来西亚 服务器,魔方时间插件,前端面试框架,爬虫 数据抓取,php快速开发平台,seo注意点,素材站用什么网站系统,网页ccs模板,阿里模板代码,登陆页面html模板,java图书管理系统毕业设计,牛中牛程序标题修改lzw

复制代码 代码如下:

农村游戏源码,arch和Ubuntu系统,爬虫新华网,php $_cookie,seo学习门槛lzw

<?php

/**

* Class SimulantForm 模拟表单

*/

class SimulantForm {

/**

* @var 要提交的页面url

*/

protected $_url;

/**

* @var resource curl_init()返回的curl句柄

*/

protected $_ch;

/**

* 初始化一个表单

* @param $_url url

*/

public function __construct($_url) {

$this->_ch = curl_init();

$this->setUrl($_url);

curl_setopt($this->_ch, CURLOPT_RETURNTRANSFER, 1);

}

/**

* get方式提交

* @param array|string 表单数据

* @return mixed

*/

public function get($_data = ”) {

$this->_url .= $this->_setGetData($_data);

$this->setUrl($this->_url);

$result = curl_exec($this->_ch);

curl_close($this->_ch);

return $result;

}

/**

* post方式提交

* @param array|string 表单数据

* @return mixed

*/

public function post($_data) {

curl_setopt($this->ch, CURLOPT_POST, 1);

$this->_setPostData($_data);

$result = curl_exec($this->_ch);

curl_close($this->_ch);

return $result;

}

/**

* 返回错误信息

* @return array array[0]:错误号 , array[1]:错误信息

*/

public function getLastError() {

return array(curl_errno($this->_ch), curl_error($this->_ch));

}

分段式全屏网页源码,ubuntu离线使用apt,河里出了水爬虫,php枪,墨子seo教程lzw

/**

* 设置SETOPT_COOKIEFILE

* @param string $_cookieFile 文件真实路径

*/

public function setCookieFile($_cookieFile) {

curl_setopt($this->_ch, CURLOPT_COOKIEFILE, $_cookieFile);

}

/**

* 设置SETOPT_COOKIEJAR

* @param string $_cookieFile 文件真实路径

*/

public function setCookieJar($_cookieFile) {

curl_setopt($this->_ch, CURLOPT_COOKIEJAR, $_cookieFile);

}

/**

* 设置url

* @param $_url

*/

protected function setUrl($_url) {

$this->_url = $_url;

curl_setopt($this->_ch, CURLOPT_URL, $_url);

}

/**

* 设置get方式提交时的数据

* @param $_get_data 字符串或数组

* @return mixed

*/

protected function _setGetData($_get_data) {

if(is_array($_get_data)) {

return $this->_getDataToString($_get_data);

} elseif(is_string($_get_data)) {

return $_get_data;

}

}

/**

* 设置post方式提交时的数据

* @param array|string $_post_data

*/

protected function _setPostData ($_post_data) {

curl_setopt($this->_ch, CURLOPT_POSTFIELDS, $_post_data);

}

/**

* 将提交的数组形式的信息解析为字符串用于get方式提交

* @param array $_get_data

* @return string

*/

protected function _getDataToString(array $_get_data) {

$result_string = ‘?’;

array_walk($_get_data, function ($value, $key) use (&$result_string) {

if(is_array($value)) {

foreach($value as $sec_value) {

$result_string .= $key . ‘[]=’ . $sec_value . ‘&’;

}

} else {

$result_string .= $key . ‘=’ . $value . ‘&’;

}

});

return substr($result_string, 0, strlen($result_string) – 1);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。