当前位置:Gxlcms > PHP教程 > 关于PHP中的数据传输CURL

关于PHP中的数据传输CURL

时间:2021-07-01 10:21:17 帮助过:9人阅读

下面为大家带来一篇浅谈PHP中的数据传输CURL。内容挺不错的,现在就分享给大家,也给大家做个参考。

确认是否安装了CURL扩展

Linux下命令:

  1. [root@fengniu020 ~]# php -i | grep -i curl
  2. Additional .ini files parsed => /etc/php.d/curl.ini,
  3. curl
  4. cURL support => enabled
  5. cURL Information => 7.19.7

curl操作步骤解析:

CURL实例

1.一个简单的curl,抓取百度首页

2.下载一个网页并把内容中的“百度”替换为“摆渡”之后输出

3.调用WebService

一个简单的curl,抓取百度首页

  1. <?php
  2. $curl=curl_init('//www.gxlcms.com');
  3. curl_exec($curl);
  4. curl_close($curl);
  5. ?>

下载一个网页并把内容中的“百度”替换为“摆渡”之后输出

  1. <?php
  2. /**
  3. * 实例描述:在网络上下载一个网页并把内容中的“百度”替换为“摆渡”之后
输出 */ $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com"); // 设置访问网页的URL curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true); // 执行之后不直接打印出来 $output=curl_exec($curlobj); // 执行 curl_close($curlobj); // 关闭cURL echo str_replace("百度","摆渡",$output); ?>

调用WebService

  1. <?php
  2. /**
  3. * 实例描述:通过调用WebService查询北京的当前天气
  4. * 下方接口,免费用户24小时内访问是有限制的,需要存储信息
  5. */
  6. $data = 'theCityName=北京';
  7. //$data = 'theCityName=北京&';//多个用&号连接
  8. $curlobj = curl_init();
  9. curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
  10. curl_setopt($curlobj, CURLOPT_HEADER, 0);
  11. curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt($curlobj, CURLOPT_POST, 1); //POST方式
  13. curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
  14. curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8",
  15. "Content-length: ".strlen($data)
  16. )); //HTTP请求头
  17. curl_setopt ($curlobj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  18. $rtn = curl_exec($curlobj);
  19. if(!curl_errno($curlobj)){
  20. // $info = curl_getinfo($curlobj);
  21. // print_r($info);
  22. echo $rtn;
  23. } else {
  24. echo 'Curl error: ' . curl_error($curlobj);
  25. }
  26. curl_close($curlobj);
  27. ?>

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

  1. <?php
  2. /**
  3. * 代码实例-PHP-cURL实战
  4. * 实例描述:从FTP服务器下载一个文件到本地
  5. */
  6. $curlobj = curl_init();
  7. curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/downloaddemo.txt");
  8. curl_setopt($curlobj, CURLOPT_HEADER, 0);
  9. curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
  10. curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
  11. curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码
  12. // Sets up the output file
  13. $outfile = fopen('dest.txt', 'wb');//保存到本地的文件名
  14. curl_setopt($curlobj, CURLOPT_FILE, $outfile);
  15. $rtn = curl_exec($curlobj);
  16. fclose($outfile);
  17. if(!curl_errno($curlobj)){
  18. // $info = curl_getinfo($curlobj);
  19. // print_r($info);
  20. echo "RETURN: " . $rtn;
  21. } else {
  22. echo 'Curl error: ' . curl_error($curlobj);
  23. }
  24. curl_close($curlobj);
  25. ?>

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

  1. <?php
  2. /**
  3. * 代码实例-PHP-cURL实战
  4. * 实例描述:把本地文件上传到FTP服务器上
  5. */
  6. $curlobj = curl_init();
  7. $localfile = 'ftp01.php';//需要上传的文件
  8. $fp = fopen($localfile, 'r');
  9. curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/ftp01_uploaded.php");//上传后保存的文件名
  10. curl_setopt($curlobj, CURLOPT_HEADER, 0);
  11. curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
  13. curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码
  14. curl_setopt($curlobj, CURLOPT_UPLOAD, 1);
  15. curl_setopt($curlobj, CURLOPT_INFILE, $fp);//传输打开的文件
  16. curl_setopt($curlobj, CURLOPT_INFILESIZE, filesize($localfile));//上传的文件大小
  17. $rtn = curl_exec($curlobj);
  18. fclose($fp);
  19. if(!curl_errno($curlobj)){
  20. echo "Uploaded successfully.";
  21. } else {
  22. echo 'Curl error: ' . curl_error($curlobj);
  23. }
  24. curl_close($curlobj);
  25. ?>

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

  1. <?php
  2. /**
  3. * 代码实例-PHP-cURL实战
  4. * 实例描述:下载网络上面的一个HTTPS的资源
  5. */
  6. $curlobj = curl_init(); // 初始化
  7. curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js"); // 设置访问网页的URL
  8. curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true); // 执行之后不直接打印出来
  9. // 设置HTTPS支持
  10. date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区
  11. curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查从证书中检查SSL加密算法是否存在,设置为0就是终止从服务器端进行验证
  12. curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, 2); //
  13. $output=curl_exec($curlobj); // 执行
  14. curl_close($curlobj); // 关闭cURL
  15. echo $output;
  16. ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

PHP实现通过URL提取根域名

以上就是关于PHP中的数据传输CURL的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行