curl_init 接口
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 应用公共文件
//
function is_not_empty_string($str = '')
{
return is_string($str) && $str != '';
}
function is_positive_integer($num = 0)
{
if (is_numeric($num)) {
return $num;
}
}
function is_positive_int($num = 0)
{
return is_numeric($num) && $num != '';
}
/*功能:统计二维数组中数组的个数
*@param array 要统计的数组
*@return int $c 返回二维数组中数组的个数*/
function array_count($arr)
{
$c = 0;
foreach ($arr as $v) {
if (is_array($v)) {
$c++;
}
}
return $c;
}
function aaa($a)
{
echo "<pre>";
print_r($a);
echo "</pre>";
}
/*函数名称:get_code()
*作用:取得随机字符串
* 参数:
1、(int)$length = 32 #随机字符长度
2、(int)$mode = 0 #随机字符类型,
0为大小写英文和数字,1为数字,2为小写字母,3为大写字母,
4为大小写字母,5为大写字母和数字,6为小写字母和数字
*返回:取得的字符串
*/
function get_code($length = 32, $mode = 0) //获取随机验证码函数
{
switch ($mode) {
case '1':
$str = '123456789';
break;
case '2':
$str = 'abcdefghijklmnopqrstuvwxyz';
break;
case '3':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case '4':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
case '5':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
break;
case '6':
$str = 'abcdefghijklmnopqrstuvwxyz1234567890';
break;
default:
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
break;
}
$checkstr = '';
$len = strlen($str) - 1;
for ($i = 0; $i < $length; $i++) {
//$num=rand(0,$len);//产生一个0到$len之间的随机数
$num = mt_rand(0, $len); //产生一个0到$len之间的随机数
$checkstr .= $str[$num];
}
return $checkstr;
}
/**
* 准备工作完毕 开始计算年龄函数
* @param $birthday 出生时间 uninx时间戳
* @param $time 当前时间
**/
function getAge($birthday){
//格式化出生时间年月日
$byear=date('Y',$birthday);
$bmonth=date('m',$birthday);
$bday=date('d',$birthday);
//格式化当前时间年月日
$tyear=date('Y');
$tmonth=date('m');
$tday=date('d');
//开始计算年龄
$age=$tyear-$byear;
if($bmonth>$tmonth || $bmonth==$tmonth && $bday>$tday){
$age--;
}
return $age;
}
/**
* [build_order_no 生成唯一订单号]
*/
function StrOrderOne(){
/* 选择一个随机的方案 */
mt_srand((double) microtime() * 1000000);
return date('YmdHis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}
/*短信验证函数*/
function shortmessa($code,$phone){
/*
***聚合数据(JUHE.CN)短信API服务接口PHP请求示例源码
***DATE:2015-05-25
*/
header('content-type:text/html;charset=utf-8');
$sendUrl = 'http://v.juhe.cn/sms/send'; //短信接口的URL
$smsConf = array(
'key' => '582d1bdc30989ab6920035f0d2a7848a', //您申请的APPKEY
'mobile' => $phone, //接受短信的用户手机号码
'tpl_id' => '62736', //您申请的短信模板ID,根据实际情况修改
'tpl_value' => urlencode('#code#=' . $code . '&#company#=聚合数据'), //您设置的模板变量,根据实际情况修改
);
$content = juhecurl($sendUrl,$smsConf,1); //请求发送短信
if($content){
$result = json_decode($content,true);
$error_code = $result['error_code'];
if($error_code == 0){
//状态为0,说明短信发送成功
echo "短信发送成功,短信ID:".$result['result']['sid'];
}else{
//状态非0,说明失败
$msg = $result['reason'];
echo "短信发送失败(".$error_code."):".$msg;
}
}else{
//返回内容异常,以下可根据业务逻辑自行修改
echo "请求发送短信失败";
}
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
function juhecurl($url,$params=false,$ispost=0){
$httpInfo = array();
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch, CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22' );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 30 );
curl_setopt( $ch, CURLOPT_TIMEOUT , 30);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
if( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if($params){
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
}else{
curl_setopt( $ch , CURLOPT_URL , $url);
}
}
$response = curl_exec( $ch );
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response;
}
/**
* 通过URL获取页面信息
* @param string $url 地址
* @return string 返回页面信息
*/
function get_url($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); //设置访问的url地址
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容
$result = curl_exec($ch);
curl_close ($ch);
return $result;
}
curl_init 接口的更多相关文章
- PHP实现微信提现功能
提现必须得用双向证书.所以大家一定要在微信的商户平台找到相应的地方去设置.因为做这个提现已经有一段时间了.所以设置微信商户平台的那几个地方没有图的情况.也说不清楚.下次再做提现的时候.给大家分享如何设 ...
- php调接口
浏览器直接访问接口时会弹出账号密码框 当用程序调用时需要加入 curl_setopt($ch, CURLOPT_USERPWD, "$username:$password") ...
- PHP通过XML报文格式的POST请求方式,与第三方接口交互(发送xml,获取XML,并解析xml步骤)
开发者端:发送请求,并接收结果 <?php // 下面的demo,实现的功能如下: // 1-开发者需要判断一个用户是否存在,去请求第三方接口. // 2-与第三方接口的通信,是以xml格式传送 ...
- PHP获取接口数据(模拟Get)
当我们在做PHP开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能. 之后就可以 ...
- 【加精】手机话费充值API接口(PHP版)
电商周年庆,公司搞了一个关注微信公众号送小额话费的活动,送1元.2元.5元.10元.20元.50元等不同面值的. 为了实现话费充值服务,找了多家开通了话费接口服务,接入后测试.先是做接口整合的平台,P ...
- PHP 天巡机票接口
一个旅游网站项目,网站需要机票预订接入了天巡机票接口,获取机票信息,不搞不知道,一搞吓一跳比较麻烦. 搜索机票信息需要分2步,首先POST获得一个SESSION,2秒之后,根据这个SESSION,从一 ...
- PHP 使用 curl_* 系列函数和 curl_multi_* 系列函数进行多接口调用时的性能对比
在页面中调用的服务较多时,使用并行方式,即使用 curl_multi_* 系列函数耗时要小于 curl_* 系列函数. 测试环境 操作系统:Windows x64 Server:Apache PHP: ...
- php 登录注册api接口代码
/** *一览(www.yl1001.com) * PHP开发API接口 服务端 */ require 'conn.php'; //连接数据库的文件 header('Content-Type:text ...
- 微信支付开发(7) 收货地址共享接口V2
关键字:微信公众平台 JSSDK 发送给朋友 收货地址共享接口 openAddress 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-open ...
随机推荐
- vs2017 未能完成操作。不支持此接口
打开vs2017开发者命令提示符 切换至安装下的指定目录 执行下面的命令就可以了 需要注意的是一定要用vs2017的开发人员命令提示符 别用cmd gacutil -i Microsoft.V ...
- MVC架构中,用户的请求简单梳理
MVC架构中,用户的请求分为下面3个步骤: 终端用户发送请求,路由器将请求路由到合适的Controller,Controller是逻辑实体和行为action的集合. Controller将请求映射到特 ...
- EF 求和 GroupBy多个字段
GroupBy根据多个字段分组使用方式: 一.使用扩展方法 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Y ...
- 调用百度api输出地址和城市查询出具体坐标系
在工作中遇到标题的内容,不知道如何写,后来我的领导写了一套代码,感觉很是厉害,特在此收藏,留作纪念 public static string GetResponse(string address, s ...
- 使用Hibernate Validator来帮你做数据校验
数据校验是贯穿所有应用程序层(从表示层到持久层)的常见任务.通常在每个层中实现相同的验证逻辑,这是耗时且容易出错的.这里我们可以使用Hibernate Validator来帮助我处理这项任务.对此,H ...
- SWT table性能改善 -- 使用VirtualTable
在SWT程序中使用table展示数据时,如果数据过多,执行起来会比较慢,不过,我们可以借助VirtualTable来解决这一问题. Eclipse官网中关于VirtualTable的说明见:http: ...
- nginx配置https转发到tomcat(使用自签名的证书)
一.使用openSSL生成自签名的证书 1.生成RSA私钥 命令:openssl genrsa -des3 -out server.key 1024 说明:生成rsa私钥,des3算法,1024强度, ...
- Java图片验证码乱码问题
有时部署到linux服务器上的web项目的图形验证码可能会出现乱码问题 这不是编码格式出错了,而是可能服务器上没有图形验证码中限定的那种字体 比如生成图形验证码的代码: Font font = new ...
- 【读书笔记】iOS-网络-同步请求,队列式异步请求,异步请求的区别
一,同步请求的最佳实践. 1,只在后台过程中使用同步请求,除非确定访问的是本地文件资源,否则请不要在主线程上使用. 2,只有在知道返回的数据不会超出应用的内存时才使用同步请求.记住,整个响应体都会位于 ...
- ionic 项目内部更新用到的插件,退出app插件
一 cordova-plugin-app-version插件 用来获取APP版本 ionic plugin add cordova-plugin-app-version -----cordova-p ...