1. function GetIP(){
  2. if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  3. $cip = $_SERVER["HTTP_CLIENT_IP"];
  4. }elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
  5. $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  6. }elseif(!empty($_SERVER["REMOTE_ADDR"])){
  7. $cip = $_SERVER["REMOTE_ADDR"];
  8. }else{
  9. $cip = "";
  10. }
  11. return $cip;
  12. }
  1. function HttpRequest($url, $type = 'get', $data = '',$timeout = 10,$header = array())
  2. {$ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  5. if (strtoupper($type) == 'POST') {
  6. curl_setopt($ch, CURLOPT_POST, 1);
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  8. }
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10. curl_setopt($ch, CURLOPT_HEADER, 0);
  11. curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  12. curl_setopt($ch, CURLOPT_ENCODING , 'gzip');
  13. $result['response'] = curl_exec($ch);
  14. $result['status']=curl_getinfo($ch, CURLINFO_HTTP_CODE);
  15. curl_close($ch);
  16. return $result;
  17. }
  1. function SaveLog($content = '', $filename = 'others')
  2. {
  3. $rootDir = \Config::get('app.rootDir');
  4. $logdir = $rootDir . '/app/storage/logs/';
  5. if (!is_dir($logdir)) mkdir($logdir, 0777, true);
  6. $filename = $filename.'_'.date('ymd');
  7. $filename = $logdir . $filename . ".log";
  8. $fp = fopen($filename, "a+");
  9. $line = 1;
  10. while (stream_get_line($fp, 8192, "\n")) {
  11. $line++;
  12. }
  13. if ($line > 9999) {
  14. file_put_contents($filename, '');
  15. $line = 1;
  16. }
  17. $info = '<' . sprintf("%04d", $line) . '>' . date("Y-m-d H:i:s") . '<>';
  18. $string = $info . str_replace("\n", "", str_replace("\r", "", $content)) . "\r\n";
  19. file_put_contents($filename, $string, FILE_APPEND);
  20. fclose($fp);
  21. }
  1. /**
  2. * 获取或保存文件内容
  3. * @param string $filedir 文件路径
  4. * @param string $content 文件内容
  5. * @return string
  6. */
  7. function FileContent($filedir = '', $content = '')
  8. {
  9. if (empty($filedir)) return '';
  10. if (empty($content)) {
  11. if (file_exists($filedir)) {
  12. $fp = fopen($filedir, "r");
  13. $content = file_get_contents($filedir);
  14. fclose($fp);
  15. return $content;
  16. } else {
  17. return '';
  18. }
  19. } else {
  20. $fps = fopen($filedir, "a");
  21. file_put_contents($filedir, $content);
  22. fclose($fps);
  23. return true;
  24. }
  25. }

PHP个人常用函数封装的更多相关文章

  1. php文件操作(最后进行文件常用函数封装)

    文件信息相关API $filename="./1-file.php"; //filetype($filename):获取文件的类型,返回的是文件的类型 echo '文件类型为:', ...

  2. PHP常用函数封装

    //二分查找function bin_sch($array, $low, $high, $k){    if ($low <= $high) {        $mid = intval(($l ...

  3. Javascript:常用函数封装

    //cookie function setCookie(name, value, iDay) { if(iDay!==false) { var oDate=new Date(); oDate.setD ...

  4. javascript常用函数封装——运动、cookie、ajax、获取行内样式兼容写法、拖拽

    运动.cookie.ajax.获取行内样式兼容写法.拖拽封装大合集. //url,data,type,timeout,success,error function ajax(options){ //- ...

  5. Python:常用函数封装

    def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\u4e00' ...

  6. shell常用函数封装-main.sh

    #!/bin/bash #sunlight sp monitor system #created on 2018/01/07#by chao.dong#used by sp servers consi ...

  7. C#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP类等常用函数封装

    #region 验证邮箱验证邮箱 /**//// <summary> /// 验证邮箱 /// </summary> /// <param name="sour ...

  8. 我自己的Javascript 库,封装了一些常用函数 Kingwell.js

    我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库  现在Javascript库海量,流行的 ...

  9. PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口

    PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中 ...

随机推荐

  1. iOS开发之 用第三方类库实现ScrollView

    转自:http://www.cnblogs.com/qianLL/p/5369127.html   在github上面有很多的第三方类库,大大节约了大家的开发时间 下载地址:https://githu ...

  2. hashMap、hashTable、treeMap的区别

    1.hashTable是线程安全的.hashMap不是线程安全的 hashmap 线程不安全 允许有null的键和值 效率高一点. 方法不是Synchronize的要提供外同步 有containsva ...

  3. PHP通过url下载远程图片到本地

    function GrabImage($url,$filename) { if($url==""):return false;endif; ob_start(); readfile ...

  4. VBS基础篇 - 循环语句(3) - For...Next

    VBS基础篇 - 循环语句(3) - For...Next   指定循环次数,使用计数器重复运行语句,语法结构如下: 1 2 3 4 5 For counter = start To end [Ste ...

  5. STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数

    1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...

  6. spring Stack Overflow

    1. ApplicationContext 不关闭,资源泄露问题: Spring ApplicationContext - Resource leak: 'context' is never clos ...

  7. Java語言

    Java编程语言是个简单.完全面向对象.分布式.解释性.健壮.安全与系统无关.可移植.高性能.多线程和动态的编程语言. Java可以撰写跨平台应用软件,是有Sun Microsystems公司于199 ...

  8. hdu_5044_Tree(树链剖分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5044 题意:给一棵树,在点和边上操作 题解:树链剖分,剖完后用树状数组维护即可,因为只有加减操作,连树 ...

  9. why TCP guarentee delivery?

    Simple idea: just use a TIMEOUT, if no answer after a certain seconds, just re-deliver!

  10. shell编程之服务脚本编写,文件锁以及信号捕获

    shell脚本编程是linux运维工程师必备的技能,也是非常重要的一个技能,所以把shell编程学好,只有好处.基础语法我也就不讲了,学过C语言这些语言的,稍微看一下就能明白shell编程的基础,所以 ...