1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace App\libs\helpers;
- class Curl
- {
- /**
- * @desc curl请求
- *
- * @param string $method
- * @param string $data
- *
- * @return bool|mixed
- */
- public static function requestCurl($url, $method = 'GET', $header = [], $data = '')
- {
- $ch = curl_init();
- if ($header) {
- curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- }
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
- if ('POST' === $method) {
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- curl_setopt($ch, CURLOPT_URL, $url);
- } else {
- if ($data) {
- $url = $url . '?' . $data;
- }
- curl_setopt($ch, CURLOPT_URL, $url);
- }
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- $result = curl_exec($ch);
- if (curl_errno($ch)) {
- curl_close($ch);
- $errorNo = curl_errno($ch);
- $error = curl_error($ch);
- throw new \Exception('curl出错,错误码: ' . $errorNo . ',错误信息:' . $error);
- }
- curl_close($ch);
- return $result;
- }
- /**
- * @desc 获取IP
- */
- private static function ip()
- {
- $ip = 'unknown';
- if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
- $ip = getenv('HTTP_CLIENT_IP');
- } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
- $ip = getenv('HTTP_X_FORWARDED_FOR');
- } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
- $ip = getenv('REMOTE_ADDR');
- } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : $ip;
- }
- }
|