php好用的方法
Posted 孤独的DNA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php好用的方法相关的知识,希望对你有一定的参考价值。
<?php namespace app\\common\\library; //非标准的base64类 class Base64 private static $hashTable = \'aD1cOrFAx3HXejRYwG4o9*SPW5ZibBt6Csd2Q/Ek7Vu0NJ8ymThvKpULfMIgqlnz\'; //$base64hash = \'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\';////标准base64算法 /** * 编码 * @param string $s 需要加密的字符串 * @return string */ public function encode($s) $base64hash = self::$hashTable; $i = 0; $prev = 0; $result = []; while ($i < ($s)) $ascii = ($s[$i]); $mod = $i % 3; switch ($mod) case 0: // 第一个6位只需要让8位二进制右移两位 $result[] = $base64hash[$ascii >> 2]; break; case 1://第二个6位 = 第一个8位的后两位 + 第二个8位的前4位 $result[] = $base64hash[($prev & 3) << 4 | ($ascii >> 4)]; break; case 2: //第三个6位 = 第二个8位的后4位 + 第三个8位的前2位 , 第4个6位 = 第三个8位的后6位 $result[] = $base64hash[($prev & 0x0f) << 2 | ($ascii >> 6)]; $result[] = $base64hash[$ascii & 0x3f]; break; $prev = $ascii; $i++; // 循环结束后看mod, 为0 证明需补3个6位,第一个为最后一个8位的最后两位后面补4个0。另外两个6位对应的是异常的“=”; // mod为1,证明还需补两个6位,一个是最后一个8位的后4位补两个0,另一个对应异常的“=” if ($mod == 0) $result[] = $base64hash[($prev & 3) << 4]; $result[] = \'==\'; else if ($mod == 1) $result[] = $base64hash[($prev & 0x0f) << 2]; $result[] = \'=\'; return (\'\', $result); /** * 解码 * @param string $s 需要解密的字符串 * @return string */ public function decode($s) $s = ("/\\s|=/", \'\', $s); $base64hash = self::$hashTable; $i = 0; $prev = 0; $result = []; while ($i < ($s)) $cur = ($base64hash, $s[$i]); $mod = $i % 4; switch ($mod) case 0://TODO break; case 1: $result[] = ($prev << 2 | $cur >> 4); break; case 2: $result[] = (($prev & 0x0f) << 4 | $cur >> 2); break; case 3: $result[] = (($prev & 3) << 6 | $cur); break; $prev = $cur; $i++; return (\'\', $result);
//计算2个坐标直接的距离
/* * 获取2个坐标直接的距离 * */ function get_distance($lat1, $lng1, $lat2, $lng2) $earthRadius = 6367000; //地球半径m $lat1 = ($lat1 * () ) / 180; $lng1 = ($lng1 * () ) / 180; $lat2 = ($lat2 * () ) / 180; $lng2 = ($lng2 * () ) / 180; $calcLongitude = $lng2 - $lng1; $calcLatitude = $lat2 - $lat1; $stepOne = (($calcLatitude / 2), 2) + ($lat1) * ($lat2) * (($calcLongitude / 2), 2); $stepTwo = 2 * ((1, ($stepOne))); $calculatedDistance = $earthRadius * $stepTwo; return ($calculatedDistance);
以上是关于php好用的方法的主要内容,如果未能解决你的问题,请参考以下文章
CentOS yum 安装 PHP 5.6.24(附带安装GD库) 扩展安装好用安装好用方法