php curl那点事儿

curl是最常用功能之一初始化句柄
$ch = curl_init();

post 传$data
1. 如果$data是字符串,则Content-Type是application/x-www-form-urlencoded。
2、如果$data是k=>v的数组,则Content-Type是multipart/form-data,

编码设置
$header = array(‘Content-Type:application/x-www-form-urlencoded;charset=utf8‘);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);

post方式
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

返回值
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

超时
curl_setopt($ch, CURLOPT_TIMEOUT, 20);

执行
curl_exec($ch);

是否有异常
if (curl_errno($ch)) 

关闭
curl_close($ch);

一个实例,post数据到某短信端口:

/**
* $sender 发送人
*$reveivers 收信人手机号 数据格式
*$msg 短信内容
*sname 发送人姓名
*/
function send($sender,$receivers,$msg,$sname){

  $tos = "";
  foreach ($receivers as $v) {  //将收信人转为以‘,‘分割的字符串
    $tos .= $v.",";
  }

  $userName = ‘hnxxx**‘;
  $pwd = ‘fuckwl***‘;
  $st = date(‘mdHis‘);  

  $post_data = array () ;
  $post_data[‘UserName‘] = $userName;

  $post_data[‘Key‘] = getKey($userName, $pwd, $st);
  $post_data[‘Timestemp‘] = $st;
  $post_data[‘Content‘] = ‘【前缀】‘.$msg;
  $post_data[‘CharSet‘] = ‘utf-8‘;
  $post_data[‘Mobiles‘] = $tos;
  $url = ‘http://www.xxx.com:3070/Http_Service/SendSms‘;
  $o = "" ;
  foreach ( $post_data as $k => $v )
  {
       $o .= "$k=".urlencode($v)."&" ;
  }
  $post_data = substr($o, 0, -1) ;
    $curl = curl_init();
  $header = array(‘Content-Type:application/x-www-form-urlencoded;charset=utf8‘);
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $result = curl_exec($curl);
  if (curl_errno($curl)) {
     echo ‘Errno‘.curl_error($curl);
  }
  curl_close($curl);

  echo $result;
  echo $post_data;

}
时间: 2024-10-22 03:23:57

php curl那点事儿的相关文章

Docker+.Net Core 的那些事儿-3.创建容器并运行

1.根据镜像运行容器 上篇文章建立了一个镜像: 我们以此开始,执行以下命令: docker run -d -p 5000:5000 hwapp:latest 如果返回以上结果表示建立成功. 此时如果你安装的是桌面版的centos,可以在centos中打开浏览器访问http://localhost:5000,看是否可以正常访问. 如果你是min版,可以执行以下命令: curl http://localhost:5000 如果返回.net core html内容,表示成功建立. 至此,整个docke

Docker+.Net Core 的那些事儿-1.准备工作

1.下载centos 地址:https://www.centos.org/download/ 我使用的是DVD ISO,这么做的目的是为了在之后的docker填坑的路上,方便使用centos中Firefox来确定docker中的app能否正常访问. 当然,如果使用curl命令也是可以测试的,这就看各位的喜好了.我安装的centos版本为7,不同版本可能稍有不同,我会尽量在过程中注明. 下载完毕后,需要对系统进行一些配置: 1)关闭selinux selinux是一个非常坑的东西,它会使很多跟网络

微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpa

php curl 伪造IP来源的实例代码

curl发出请求的文件fake_ip.php: 代码 代码如下: <?php $ch = curl_init(); $url = "http://localhost/target_ip.php"; $header = array( 'CLIENT-IP:58.68.44.61', 'X-FORWARDED-FOR:58.68.44.61', ); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPH

Linux系统curl命令

curl命令 curl  -I  网址    //-I :省略源代码查看,内容如下: 我们查看的是HTTP/1.1 200 OK 这一行 常用状态吗有:200 301 302 404 403 502 503 上述状态码中,只有  200 是OK 的 如果出现301 302 ,它可能是因为在服务端设置了  跳转 ,内容如下: 上图显示,HTTP/1.1 301 设置了跳转,跳转到了下面:Location:http://www.aminglinux.com/bbs/forum.php -x  可以指

关于curl跳转抓取

今天在公司碰到了一个bug,就是以前一直用curl下载的MP3录音文件为空了,但是浏览器去get请求是有文件的,并且大小还不是0kb,但是我用curl下载下来就是0K,百思不得其解.终于功夫不负有心人,得到了方法,原来我一直要去第三方的接口拿到录音数据,但是今天的录音数据中地址跳转了,也就是第一次请求的地址返回的是302, 这是以前的代码 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // curl_setopt($ch, CUR

php+curl上传文件

因为公司项目用java做的,需要我这边用php上传文件.只给了个接口,参数都不明确,然后这边不提交表单,在生成pdf之后就立马上传.用了php+curl,总是没上传成功,这里看到了篇文章http://blog.sina.com.cn/s/blog_709475a101013dlf.html,希望可以借鉴.还有这篇http://www.cnblogs.com/jackluo/p/4113255.html

有些事儿,工程师可能今生仅此一次

郑昀 创建于2016/9/15 最后更新于2016/9/18 关键词:深度思考,碎片化阅读,做论文,深入研究, 早先在<技术高手如何炼成>一文中提到,我会问面试者,你日常如何构建自己的知识体系.有人会觉得你怎么就问出这么宏大的问题?知识体系,这是什么鬼? 面试时的交谈 工作之后你做过这样的事情吗? 面试是一个谁主张谁举证的过程,有时候需要面试者举出实例,自我证明. 而我认为问一些我们工作中遇到的难题和业务场景是在“欺负”面试者,所以我喜欢问开放型问题: 在你工作之后,你有没有像做毕业论文一样对

curl 命令获取网络网站的响应码

curl命令参数很多,博主很多都没有用过.今天发现可以用-w参数挺好用的. -w:--write-out,作用就是输出点什么.curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出.输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{variable_name}的格式,如果需要输出%,double一下即可,即%%,同时,\n是换行,\r是回车,\t是TAB.curl会用合适的值来替代输出格式中的变量,所有可用变量如下: url_effective 最终获取的url地