分类 PHP 下的文章

开放API接口安全设计

早期文章:[开放API接口设计简要思路](https://www.fity.cn/post/657.html "开放API接口设计简要思路") 最后更新:2019-06-21 20:05:39 星期五 #### 开放API接口安全校验的背景: **在未进行安全处理的开放API接口存在诸多的风险问题,如以下三种常见场景:** **1、**场景一 A公司开发的开放API未对接口进行安全控制,有黑客通过爬虫程序调用开放API查询客户信息的接口,由于没有安全验证,A公司的客户数据通过客户信息查询API流出,竞争公司拥有了这批客户数据,对A公司造成损失。 **2、**场景二 A公司开发的开放API未对接口进行防篡改控制,有客户购买价值1万元的产品,现有黑客通过技术手段,对客户提交的表单进行篡改...

继续阅读 »

AdmnIX前端网站后台管理模板框架

**AdmnIX**是一款基于Bootstrap的轻量级、响应式前端后台管理框架,采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术,提供诸多可重新组合的UI组件。同时,遵循极简体验、简单灵活、兼容性好、自适应触屏手机的原则,面向所有层次的前后端程序,帮助企业极大的提高工作效率,节省开发成本,提升品牌形象。始于2018年初,为敏捷WEB应用开发和简化企业应用开发而诞生。 ![](https://www.fity.cn/usr/uploads/2019/05/20190520062206_25951.png) ![](https://www.fity.cn/usr/uploads/2019/05/20190520063306_93156.png) ##### 再见,是为了更好的再...

继续阅读 »

计算两个经纬度的距离/偏差米数_计算周边范围经纬度值

**计算两个经纬度的距离/偏差米数_计算周边范围经纬度值_PHP函数笔记** 计算经纬度距离,首先需要了解球面距离计算公示: ```php r*arccos(cos(lat1*pi()/180 )*cos(lat2*pi()/180)*cos(lng1*pi()/180 -lng2*pi()/180)+ sin(lat1*pi()/180 )*sin(lat2*pi()/180))r*arccos(cos(lat1*pi()/180 )*cos(lat2*pi()/180)*cos(lng1*pi()/180 -lng2*pi()/180)+ sin(lat1*pi()/180 )*sin(lat2*pi()/180)) ``` 其中,lat1,lng1是纬度\经度的弧度单位,r为地球半径。...

继续阅读 »

PHP Javabridge使用

##### 一、php如何调取java方法: php调用java的方法有Javabridge,也有rpc。php里调用java平台封装好的jar包里的class类和方法推荐使用php-java-bridge做桥接。 ##### 二、Javabridge工作原理: 通过服务端打开一个java的监听端口,php调用java时,将对应的方法调用转发给java的指定端口,由java执行完成后将结果返回给php。可以简单的理解php在这里扮演的角色是代理转发,把调用的类方法转交给后端java执行,是一种较为典型的代理模式。 ##### 三、使用步骤: **1、**服务端部署Apache/Nginx+PHP+JDK+Tomcat **2、**下载本文附件[Javabridge](https://w...

继续阅读 »

PHP一个数组按另一个数组顺序排序

##### PHP实现将一个数组按另一个数组顺序进行排序,PHP根据一个数组对另一个数组进行排序 ##### 顺序约束数据(20条): ```php $sort_list = array(20) { [0] => int(30702) [1] => int(30373) [2] => int(32110) [3] => int(32207) [4] => int(31923) [5] => int(1497) [6] => int(32003) [7] => int(30397) [8] => int(32086) [9] => int(31920) [10] => int(30795) [11] => int(3192...

继续阅读 »

php openssl_encrypt无填充注意点

**php openssl_encrypt OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING无填充加密失败或空白无输出问题:** 在ios/java(Android)加密选择无填充模式如果不足128字节的话,调用方法会自动填充至128字节再进行加密,但php跟java中没有统一的填充标准,所以openssl_encrypt并没有默认填充,openssl_encrypt加密对数据长度有要求(这个与钥模有关),从而导致加密失败,这就需要手动填充。可以使用php函数str_pad函数。

继续阅读 »

PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密

**PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式交互调取早期系统数据,由于早期AES使用的是mcrypt_encrypt函数,但该函数在PHP新版本中已逐渐废弃,PHP新版本中使用openssl_encrypt取代mcrypt_encrypt。 于是重新基于PHP7编写一个新类,由于需兼容现有早期系统的AES加解密类(并存填充与无填充),所以该类中增添部分判断。在规划项目、技术及开发时,未来往事推荐你尽可能规范化、标准化、统一化,以尽可能规避持续的维护投入,提升有效开发时间。 **AES对等加密解密类文件:CBC模式 - PHP** `...

继续阅读 »

tp_thinkphp_php检测上传图片中是否含脚本

#### 本文范例中是基于检测图片十六进制代码中是否包含``、`` 、``等脚本实现检测上传文件是否非法及包含木马脚本。 ```php class Upload { private static $image = null; private static $status = 0; private static $suffix = null; private static $imageType = array('.jpg', '.bmp','.gif','.png');  //允许的图片类型 private static $message = array(  //文件上传错误信息 '0' => '没有错误发生...

继续阅读 »

TP5 save遍历更新,过滤相邻重复字段,问题汇总

  TP5中在model中使用save方法遍历更新字段,会自动过滤掉相邻且值重复的字段,在TP5开发手册中也没有提到这一茬,虽然官方有给遍历更新的例子,但是普通的写法程序也不会报错,可能几千条数据中会过滤一两个字段,让开发者很难察觉到错误。而且也实在想不通过滤掉重复的字段的意义在哪里,测试内容如下: 测试准备工作如下: 1.建立一张数据表如下 ![](http://images2015.cnblogs.com/blog/1001334/201706/1001334-20170614004111743-584515005.png) 2.控制器代码如下:     public function save(){ $model = model('Foo');...

继续阅读 »

PHP垃圾回收与内存管理基本原理

##### 内存管理机制了解: >var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存 $a = "https://www.fity.cn"; var_dump(memory_get_usage()); unset($a); var_dump(memory_get_usage()); 输出: int 368752 int 368920 int 368752 可以直观的看出定义变量之后,内存增加,清除变量之后,内存恢复(有些可能不会恢复和以前一样),好像定义变量时申请了一次内存,其实不是这样的,php会预先申请一块内存,不会每次定义变量就申请内存。PHP不像C语言那样,只有你显示的调用内存分配相关API才会有内存的分...

继续阅读 »

html无损截取_保留html标签

```php /** * 字符串切割 * 功能:截取字符串(支持中文),如果字符串中包括html标签,截取的字符串则会保留完整的html标签 * @param string $string 输入字符串 * @param unknown $length 截取长度 * @param bool $mode 截取模式:0删去html标记(默认),1补齐html标记 * @param string $replace * @return string * @author 未来往事 * 说明: * 1.未考虑多字节字符,仅已字节做计数单位 * 2.未考虑可单独存在的标记 */ function html_substr($string, $length, $mode=0, $o...

继续阅读 »

tp5 Excel表格导入_tp5导出Excel

#### thinkphp5使用PHPExcel导入Excel、csv表格,thinkphp5表格导入导出 ##### tp5使用PHPExcel导入Excel表格文件: ```php PS:将PHPExcel扩展包放到vendor目录下 /vendor/PHPExcel.php /vendor/PHPExcel public function uploadUser(){ if(Request::instance()->isPost()){ $file = request()->file('file'); // 获取表单提交过来的文件 $error = $_FILES['file']['error']; // 如果$_F...

继续阅读 »

过滤微信表情/emoji表情

微信表情/emoji表情是个麻烦的东西,即使你能存储,也不一定能完美显示。在iOS以外的平台上,例如PC或者android。如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才行。即便如此,还是可能因为emoji图片不够全而出现无法显示的情况,在大多数业务场景下,emoji也不是非要不可的。我们可以适当地考虑干掉它,节约各种成本。 ```php public function get_filterEmoji($str){ $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; ...

继续阅读 »

php平铺水印/图片添加水印/图片合成

php图片加水印,php文字水印,php平铺水印,php图片水印,php图片添加图文 平铺水印。 **图片添加文字水印** ```php $bigImgPath = '08.jpg'; $img = imagecreatefromstring(file_get_contents($bigImgPath)); $color = imagecolorallocatealpha($img,255,255,255,60); $font = './zzgkt.ttf';//字体 $fontSize = 18; //字体大小 $circleSize = 15; //旋转角度 $left = 50; //左边距 $top = 200; //顶边距 $str = '未来往事[ww...

继续阅读 »

URL数字安全码随机拼组生成及校验

URL数字随机重组校验,URL地址id随机加密生成及逆向校验 URL加密解密PHP版本:echo geturl(888);  //输出结果:https://www.fity.cn/post/984-1186-187-2698712709009 //每次刷新数值都会全部改变。  //实现原理:对数字888重组后为999,然后999+187=1186。可应用到一些防刷、防采页面,如投票防刷(id数字不公开全在服务端处理好)。    /** 地址拼组 */  function geturl($a){    return&nb...

继续阅读 »