/**
* CURL方法
* @param type $url
* @param type $https
* @param type $method
* @param type $data
* @return type
*/
public function request($url, $https = true, $method = 'get', $data = null)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($https === true) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$str = curl_exec($ch);
curl_close($ch);
return $str;
}
/**
* 对象 转 数组
* @param object $obj 对象
* @return array
*/
public function objToArr($object)
{
$object = json_decode(json_encode($object), true);
return $object;
}

/**
* 获取客户端ip
* @return string 客户端ip地址
* @author lichuang
*/
public function getIp()
{
$ip = false;
if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) {
array_unshift($ips, $ip);
$ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++) {
if (!eregi("^(10|172\.16|192\.168)\.", $ips[$i])) {

$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}


最新文章

  1. Linux网络编程系列-常见疑惑
  2. 自定义readonly属性的用法
  3. python--day2--基础数据类型与变量
  4. Jquery easyui tree的使用
  5. 谈谈“色彩空间表示方法”——RGB、YUY2、YUYV、YVYU、UYVY、AYUV
  6. The formatter threw an exception while trying to deserialize the message in WCF
  7. vuejs 三级联动
  8. [转]Net Framework引路蜂地图开发示例
  9. NYIST OJ 题目38 布线问题
  10. git远程分支--remote
  11. Java创建连接池连接不同数据库
  12. mysql导出指定字段或指定数据到文件中
  13. 201521123017 《Java程序设计》第6周学习总结
  14. Linux内核中的有关Page的算法
  15. PID控制算法的简单分析和仿真!
  16. Windows中使用ssh利用公钥登入远程服务器
  17. cmake方式使用vlfeat
  18. 【C++ Primer | 11】关联容器(一)
  19. 019_nginx upstream中keepalive参数
  20. Vue源码

热门文章

  1. MarkDown语法----纯文本格式的标记语言
  2. 《Effective C++》实现 章节
  3. [Unity]Update()与FixedUpdate()
  4. [硬核] Bootstrap Blazor Table 综合演示例子
  5. C#中检查null的语法糖,非常实用
  6. flutter2.x报错解决type (RouteSettings) =&gt; Route&lt;dynamic&gt; is not a subtype of type (RouteSettings) =&gt; Route&lt;dynemic&gt; of function result
  7. 【模板】网络最大流 Dinic(多路增广+当前弧优化)
  8. 【数据结构和算法】Trie树简介及应用详解
  9. Hash table集合-练习_计算一个字符串中每个字符出现次数
  10. 结构型模式 - 装饰器模式Decorator