2019独角兽企业重金招聘Python工程师标准>>>

使用CURL发送请求的基本流程

使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:

  1. 初始化连接句柄。
  2. 设置CURL选项。
  3. 执行并获取结果。
  4. 释放VURL连接句柄。

使用curl案例

CURL模拟网络请求

    /*** CURL模拟网络请求* @param string $method 请求方法* @param string $url 请求方法* @param array $options 请求参数[headers,data,ssl_cer,ssl_key]* @return bool|string*/protected static function doRequest($method, $url, $options = []){$curl = curl_init();// GET参数设置if (!empty($options['query'])) {$url .= (stripos($url, '?') !== false ? '&' : '?') . http_build_query($options['query']);}// CURL头信息设置if (!empty($options['headers'])) {curl_setopt($curl, CURLOPT_HTTPHEADER, $options['headers']);}// POST数据设置if (strtolower($method) === 'post') {curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $options['data']);}// 证书文件设置if (!empty($options['ssl_cer'])) {if (file_exists($options['ssl_cer'])) {curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');curl_setopt($curl, CURLOPT_SSLCERT, $options['ssl_cer']);} else {throw new InvalidArgumentException("Certificate files that do not exist. --- [ssl_cer]");}}// 证书文件设置if (!empty($options['ssl_key'])) {if (file_exists($options['ssl_key'])) {curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');curl_setopt($curl, CURLOPT_SSLKEY, $options['ssl_key']);} else {throw new InvalidArgumentException("Certificate files that do not exist. --- [ssl_key]");}}curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_TIMEOUT, 60);curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);list($content, $status) = [curl_exec($curl), curl_getinfo($curl), curl_close($curl)];return (intval($status["http_code"]) === 200) ? $content : false;}

模拟http请求

/**
* 模拟http请求
* @author  tangtanglove
*/
function httpMethod($url,$post = '',$cookie = '')
{if (empty($url)) {return '参数错误!';}//初始化$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, $url);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 1);if(!empty($cookie)){curl_setopt($curl, CURLOPT_COOKIE, $cookie);}//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);// 传入post数据if (!empty($post)) {curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $post);}//执行命令$data = curl_exec($curl);list($header, $body) = explode("\r\n\r\n", $data, 2);preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);$result['status']  = curl_getinfo($curl,CURLINFO_HTTP_CODE);$result['cookie']  = substr($matches[1][0], 1);$result['content'] = $body;curl_close($curl);return $result;
}

自定义get方法抓取网页

function get($url) {//初使化curl$ch = curl_init();//请求的url,由形参传入curl_setopt($ch, CURLOPT_URL, $url);//将得到的数据返回curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不处理头信息curl_setopt($ch, CURLOPT_HEADER, 0);//连接超过10秒超时curl_setopt($ch, CURLOPT_TIMEOUT, 10);//执行curl$output = curl_exec($ch);//关闭资源curl_close($ch);//返回内容return $output;
}

使用post发送数据

function post($url, $data) {//初使化init方法$ch = curl_init();//指定URLcurl_setopt($ch, CURLOPT_URL, $url);//设定请求后返回结果curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//声明使用POST方式来进行发送curl_setopt($ch, CURLOPT_POST, 1);//发送什么数据呢curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//忽略证书curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//忽略header头信息curl_setopt($ch, CURLOPT_HEADER, 0);//设置超时时间curl_setopt($ch, CURLOPT_TIMEOUT, 10);//发送请求$output = curl_exec($ch);//关闭curlcurl_close($ch);//返回数据return $output;
}

使用CURL对带有验证码的网站进行模拟登录

获取到验证码之后把验证码存储为一个图片,然后程序休眠20秒,在20秒之后由用户手动查看图片,并把验证码填写到code.txt文件中,20秒休眠完成后,程序会读code.txt的验证码,这样再带着验证码进行登录操作。具体代码如下:

/*** 模拟登录*/
//初始化变量
$cookie_file = "tmp.cookie";
$login_url = "http://xxx.com/logon.php";
$verify_code_url = "http://xxx.com/verifyCode.php";
echo "正在获取COOKIE...\n";
$curlj = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
$contents = curl_exec($curl);
curl_close($curl);
echo "COOKIE获取完成,正在取验证码...\n";
//取出验证码
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);
$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\n";
//停止运行20秒
sleep(20);
echo "休眠完成,开始取验证码...\n";
$code = file_get_contents("code.txt");
echo "验证码成功取出:$code\n";
echo "正在准备模拟登录...\n";
$post = "username=haha&pwd=123456&verifycode=$code";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);
//这一块根据自己抓包获取到的网站上的数据来做判断
if(substr_count($result,"登录成功")){echo "登录成功\n";
}else{echo "登录失败\n";exit;
}
//OK,开始做你想做的事吧。。。。。

在网络上下载一个网页并把内容中的“百度”替换为“屌丝”之后输出

<?php$curlobj = curl_init();           // 初始化curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");     // 设置访问网页的URLcurl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);           // 执行之后不直接打印出来$output=curl_exec($curlobj); // 执行curl_close($curlobj);          // 关闭cURLecho str_replace("百度","屌丝",$output);
?>

自定义实现页面链接跳转抓取

<?php
$data=array('username' => 'promonkey', 'password' => '1q2w3e','remember'=>1);
$data='username=zjzhoufy@126.com&password=1q2w3e&remember=1';
$curlobj = curl_init();            // 初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/user/login");        // 设置访问网页的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);            // 执行之后不直接打印出来// Cookie相关设置,这部分设置需要在所有会话开始之前设置
date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区
curl_setopt($curlobj, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($curlobj, CURLOPT_HEADER, 0);
curl_setopt($curlobj, CURLOPT_FOLLOWLOCATION, 1); // 这样能够让cURL支持页面链接跳转curl_setopt($curlobj, CURLOPT_POST, 1);
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8", "Content-length: ".strlen($data)));
curl_exec($curlobj);    // 执行
curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/space/index");
curl_setopt($curlobj, CURLOPT_POST, 0);
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-type: text/xml"));
$output=curl_exec($curlobj);   // 执行
curl_close($curlobj);           // 关闭cURL
echo $output;
?>

从FTP服务器下载一个文件到本地

<?php
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/downloaddemo.txt");
curl_setopt($curlobj, CURLOPT_HEADER, 0);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码
// Sets up the output file
$outfile = fopen('dest.txt', 'wb');//保存到本地的文件名
curl_setopt($curlobj, CURLOPT_FILE, $outfile);$rtn = curl_exec($curlobj);
fclose($outfile);
if(!curl_errno($curlobj)){// $info = curl_getinfo($curlobj); // print_r($info);echo "RETURN: " . $rtn;
} else {echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

把本地文件上传到FTP服务器上

<?php
$curlobj = curl_init();
$localfile = 'ftp01.php';
$fp = fopen($localfile, 'r');curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/ftp01_uploaded.php");
curl_setopt($curlobj, CURLOPT_HEADER, 0);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码curl_setopt($curlobj, CURLOPT_UPLOAD, 1);
curl_setopt($curlobj, CURLOPT_INFILE, $fp);
curl_setopt($curlobj, CURLOPT_INFILESIZE, filesize($localfile));
$rtn = curl_exec($curlobj);
fclose($fp);
if(!curl_errno($curlobj)){echo "Uploaded successfully.";
} else {echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

下载网络上面的一个HTTPS的资源

<?php
$curlobj = curl_init();            // 初始化
curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js");      // 设置访问网页的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);            // 执行之后不直接打印出来// 设置HTTPS支持
date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区
curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查从证书中检查SSL加密算法是否存在
curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, 2); // $output=curl_exec($curlobj);  // 执行
curl_close($curlobj);           // 关闭cURL
echo $output;
?>

通过调用WebService查询北京的当前天气

<?php
$data = 'theCityName=北京';
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
curl_setopt($curlobj, CURLOPT_HEADER, 0);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_POST, 1);
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8", "Content-length: ".strlen($data)));
$rtn = curl_exec($curlobj);
if(!curl_errno($curlobj)){// $info = curl_getinfo($curlobj); // print_r($info);echo $rtn;
} else {echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

PHP中CURL方法curl_setopt()函数的一些参数 .

bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。

下列选项的值将被作为长整形使用(在option参数中指定):

  • CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。
  • CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。
  • CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。
  • CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。
  • CURLOPT_NOBODY : 如果你不想在输出中包含body部分,设置这个选项为一个非零值。
  • CURLOPT_FAILONERROR : 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。
  • CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。
  • CURLOPT_POST : 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
  • CURLOPT_FTPLISTONLY : 设置这个选项为非零值,PHP将列出FTP的目录名列表。
  • CURLOPT_FTPAPPEND : 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。
  • CURLOPT_NETRC : 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。
  • CURLOPT_FOLLOWLOCATION : 设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
  • CURLOPT_PUT : 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
  • CURLOPT_MUTE : 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。
  • CURLOPT_TIMEOUT : 设置一个长整形数,作为最大延续多少秒。
  • CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。
  • CURLOPT_LOW_SPEED_TIME : 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。
  • CURLOPT_RESUME_FROM : 传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。
  • CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。
  • CURLOPT_TIMECONDITION : 传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。
  • CURLOPT_TIMEVALUE : 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。

下列选项的值将被作为字符串:

  • CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
  • CURLOPT_USERPWD : 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
  • CURLOPT_PROXYUSERPWD : 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
  • CURLOPT_RANGE : 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
  • CURLOPT_POSTFIELDS : 传递一个作为HTTP “POST”操作的所有数据的字符串。
  • CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
  • CURLOPT_USERAGENT : 在HTTP请求中包含一个”user-agent”头的字符串。
  • CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-'(使用系统默认IP地址)。
  • CURLOPT_COOKIE : 传递一个包含HTTP cookie的头连接。
  • CURLOPT_SSLCERT : 传递一个包含PEM格式证书的字符串。
  • CURLOPT_SSLCERTPASSWD : 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
  • CURLOPT_COOKIEFILE : 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
  • CURLOPT_CUSTOMREQUEST : 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得):
  • CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
  • CURLOPT_INFILE : 这个文件是你传送过来的输入文件。
  • CURLOPT_WRITEHEADER : 这个文件写有你输出的头部分。
  • CURLOPT_STDERR : 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.CURLOPT_FTPLISTONLY : 设置这个选项为非零值,PHP将列出FTP的目录名列表。
  • CURLOPT_FTPAPPEND : 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。
  • CURLOPT_NETRC : 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。
  • CURLOPT_FOLLOWLOCATION : 设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
  • CURLOPT_PUT : 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
  • CURLOPT_MUTE : 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。
  • CURLOPT_TIMEOUT : 设置一个长整形数,作为最大延续多少秒。
  • CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。
  • CURLOPT_LOW_SPEED_TIME : 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。
  • CURLOPT_RESUME_FROM : 传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。
  • CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。
  • CURLOPT_TIMECONDITION : 传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。
  • CURLOPT_TIMEVALUE : 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。
  • 下列选项的值将被作为字符串:
  • CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
  • CURLOPT_USERPWD : 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
  • CURLOPT_PROXYUSERPWD : 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
  • CURLOPT_RANGE : 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
  • CURLOPT_POSTFIELDS : 传递一个作为HTTP “POST”操作的所有数据的字符串。
  • CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
  • CURLOPT_USERAGENT : 在HTTP请求中包含一个”user-agent”头的字符串。
  • CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-'(使用系统默认IP地址)。
  • CURLOPT_COOKIE : 传递一个包含HTTP cookie的头连接。
  • CURLOPT_SSLCERT : 传递一个包含PEM格式证书的字符串。
  • CURLOPT_SSLCERTPASSWD : 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
  • CURLOPT_COOKIEFILE : 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
  • CURLOPT_CUSTOMREQUEST : 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得):
  • CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
  • CURLOPT_INFILE : 这个文件是你传送过来的输入文件。
  • CURLOPT_WRITEHEADER : 这个文件写有你输出的头部分。
  • CURLOPT_STDERR : 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.

相关composer包

https://github.com/Yurunsoft/YurunHttp

转载于:https://my.oschina.net/zhiqiangwang/blog/1494733

PHP使用CURL案例相关推荐

  1. php curl_setopt抓取内容,PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

    通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库 使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2) ...

  2. php 安装curl init,linux下为php添加curl扩展的方法及curl_init函数用法案例详解

    使用PHP的cURL库可以简单和有效地去抓网页.只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导 ...

  3. PHP中curl使用案例(四)-- 从ftp服务器下载文件到本地

    //从FTP服务器下载一个文件到本地 //初始化 $curl = curl_init(); //设置被下载文件的url curl_setopt($curl, CURLOPT_URL,"ftp ...

  4. 2021年大数据ELK(十七):Elasticsearch SQL 订单统计分析案例

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 订单统计分析案例 一.案例介绍 二.创建索引 三.导入测试数据 四.统计不同支 ...

  5. 可能是东半球最好的 Curl 学习指南,强烈建议收藏!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 简介 curl 是常用的命令行工具,用来请求 Web 服务器.它的 ...

  6. Scrapy爬虫及案例剖析

    来自:ytao 由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通 ...

  7. curl 模拟 GET\POST 请求

    2019独角兽企业重金招聘Python工程师标准>>> curl post 案例如下: 1. 命令格式:curl http://ip:port/product/productDeta ...

  8. curl学习(实例不断总结)

    1.先来一个简单的案例,请求http协议的网站// 初始化一个 cURL 对象 $curl = curl_init();// 设置你需要抓取的URL curl_setopt($curl, CURLOP ...

  9. 跟着百度学PHP[17]-PHP扩展CURL的POST传输数据

    如果是GET的话就不必那么多设置.但是基本需要用到POST就需要用到以下的几个设置选项. <?php $username = "admin"; $password = &qu ...

最新文章

  1. python 进度条_Python小程序系列——动态进度条(1)
  2. 安装 Cacti 监控
  3. webkit如何实现JS DOM binding—基于V8分析
  4. satd残差_RDO、SAD、SATD、λ相关概念【转】
  5. 经验 | 上交机械本硕转计算机视觉岗位面经
  6. 补习系列(8)-springboot 单元测试之道
  7. 微课|中学生可以这样学Python(5.5.3节):字符串格式化1
  8. java 1.8 内存告警问题
  9. 外网能互联-内网不行system-config-securitylevel与iptables
  10. VS2015/VS2017C++报错C++LNK1104 无法打开文件“ucrtd.lib”或无法打开包括文件“corecrt.h“
  11. w3school离线文档分享。
  12. vue-router路由文档详解
  13. c语言输入abc求方程的根,编写程序,输入系数abc,计算任意二次方根的实根
  14. 少年群侠传服务器维护时间,少年群侠传开服表
  15. 7-16 新浪微博热门话题 (30 分)
  16. 负载均衡添加ssl证书
  17. WordPress建站主机推荐
  18. ASP.NET MVC 分部页 PartialViewResult
  19. JVM监控及诊断工具-GUI篇
  20. EasyExcel 使用Converter 转换注入时报nullPoint异常

热门文章

  1. python网课百度网盘-我的“便(bian)宜”Python网课第一课
  2. python使用符号 表示单行注释-Python编程规范之注释
  3. Windows Server 2008 R2 如何显示被隐藏的文件扩展名
  4. 解决安装下载好的whl库包时,报错:zipfile.BadZipFile: File is not a zip file
  5. pyrosim有Linux版本吗,烟气流动分析软件Pyrosim版本 2020.4.092
  6. LeetCode Range Sum Query - Mutable(树状数组、线段树)
  7. C# 4.0中的协变和逆变(一)
  8. 背包问题之我的思考一
  9. hdu4467 graph
  10. java编程思想第四版第十章总结