|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
-
- /**
- * Created by PhpStorm.
- * User: Steven
- * Date: 2016/10/8
- * Time: 17:01
- *
- * Class utils 公共工具类
- */
-
- namespace common\models;
-
- class Utils
- {
- /**
- *创建日记类
- * @param $log log内容
- */
- /* static function writeLog($log)
- {
- $dir = __DIR__ . "/../Log/";
- if (!is_dir($dir)) {
- mkdir($dir);
- }
- $filename = $dir . date("Y-m-d") . ".log";
- file_put_contents($filename, date("Y-m-d H:i:s") . "\t" . $log . PHP_EOL, FILE_APPEND);
- }*/
-
- static function httpRequest($url, $data = null)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- if (!empty($data)) {
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- }
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $output = curl_exec($ch);
- file_put_contents(__DIR__ . '/../log/curl_log/' . date("Y-m-d") . '.log', date("Y-m-d H:i:s") . $url . PHP_EOL . $output . PHP_EOL, FILE_APPEND);
- curl_close($ch);
- return $output;
- }
-
- /**
- * Des:异步请求
- * Name: httpRequestForasyn
- * @param $url
- * @param null $data
- * @author 倪宗锋
- */
- static function httpRequestForasyn($url, $data = null)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- if (!empty($data)) {
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- }
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT,1);
- curl_exec($ch);
- curl_close($ch);
- }
-
- /**
- * 发送HTTP请求
- * @param $url
- * @param array $param
- * @return mixed
- * @throws Exception
- */
- static function httpsPost($url, $param = array())
- {
- $ch = curl_init(); // 初始化一个 cURL 对象
- curl_setopt($ch, CURLOPT_URL, $url); // 设置需要抓取的URL
- curl_setopt($ch, CURLOPT_HEADER, 0); // // 设置header
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
- // 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param)); // 传递一个作为HTTP “POST”操作的所有数据的字符串。//http_build_query:生成 URL-encode 之后的请求字符串
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array(
- 'Content-type:application/x-www-form-urlencoded;charset=utf-8'
- ));
- $rtn = curl_exec($ch); // 运行cURL,请求网页
- if ($errno = curl_errno($ch)) {
- throw new Exception ('Curl Error(' . $errno . '):' . curl_error($ch));
- }
- curl_close($ch); // 关闭URL请求
- return $rtn; // 返回获取的数据
- }
-
- /**
- * User: wangxj
- *
- * GridView 计算平均值;如果是“-”返回“-”,不返回0,
- *
- * @data array
- *
- * @return string
- */
- static function gridSummary($data)
- {
- if ($data[0] == '-') {
- return '-';
- }
- return count($data) > 0 ? array_sum($data) / count($data) : null;
- }
-
- /**
- * User: wangxj
- *
- * 获取离00:00的分钟数
- *
- * @param $time
- *
- * @return integer
- */
- static function getMinutes($time)
- {
- $minutes = 0;
- $arr = explode(':', $time);
-
- $minutes += $arr[0] * 60;
- $minutes += $arr[1];
-
- return $minutes;
- }
-
-
- /**
- * Function Description:发送http请求
- * Function Name: httpRequestForYii
- * @param $url
- * @param null $data
- * @param $cookie
- *
- * @return mixed
- *
- * @author 冒炎
- */
- public function httpRequestForYii($url,$data=null,$cookie) {
- $ch=curl_init();
- curl_setopt($ch, CURLOPT_COOKIE, $cookie);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- if (!empty($data)){
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- }
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $output=curl_exec($ch);
- curl_close($ch);
- return $output;
- }
- }
|