![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
追逐吾之所求
我就是我,最真的我!
展开
-
phpword 实现word文件模板字符替换
phpword 实现word文件模板字符替换转载 2022-03-07 11:29:11 · 1816 阅读 · 2 评论 -
HTML audio 播放Base64音频流
后端把音频文件转为Base64音频流 <?php header( "Content-type: audio/mp3"); $file='audio.mp3'; $content=file_get_contents($file); echo base64_decode($content);//输出流 HTML audio 播放Base64音频流 页面元素:<audio controls="controls" autoplay />请求接口拿数据,并...转载 2022-02-19 16:42:55 · 1975 阅读 · 0 评论 -
PHP 跨域 Access-Control-Allow-Origin设置多个域名
//废话不多说,复制就完了$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';$allowOrigin = array( 'https://www.baidu.com/', 'https://www.google.com/');if (in_array($origin, $allowOrigin)) { header("Access-Control-Allow-Origin:".$origin);}.转载 2022-02-19 16:31:07 · 944 阅读 · 0 评论 -
PHP中去掉小数点末尾的0
今天介绍几种实现去掉小数点末尾0的方法:例如:100.00、100.01、100.10得到值:100、100.01、100.1方法一、直接加0,因为PHP是弱类型,可以直接进行数学运算转化为数字echo '100.00' + 0;echo '100.01' + 0;echo '100.10' + 0;// 结果100100.01100.1方法二、使用floatval()转化为浮点型。echo floatval('100.00');echo floatva转载 2021-04-21 18:13:28 · 973 阅读 · 0 评论 -
PHP设置谷歌验证器(Google Authenticator)实现操作二步验证
使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷转载 2021-04-19 22:46:12 · 1282 阅读 · 1 评论 -
PHP header 请求返回状态值设置(301,404)
header("HTTP/1.1 404 Not Found"); header("Status: 404 Not Found");转载 2020-09-30 16:26:27 · 812 阅读 · 0 评论 -
PHP 日期、时间使用整理
1.日期加减(1).date_add() 函数向某个日期添加日、月、年、时、分和秒$date=date_create("2020-01-01");date_add($date,date_interval_create_from_date_string("30 days"));echo date_format($date,"Y-m-d");//输出 2020-01-31(2).date_interval_create_from_date_string - 从字符串的相对部分设置DateIn原创 2020-08-24 15:40:07 · 106 阅读 · 0 评论 -
判断某个方法是否存在,解析php函数function_exists (),method_exists()与is_callable()的区别
php函数function_exists (),method_exists() 与is_callable()的区别在哪?先来讲下后两个:method_exists() 与is_callable():在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有 method_exists()和is_callable() 相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为 第一个参数,如果类方法存在并且可以调用,则返回...转载 2020-08-12 16:13:23 · 335 阅读 · 0 评论 -
php转换字符编码为utf-8 - mb_detect_encoding
mb_detect_encoding — 检测字符的编码string mb_detect_encoding ( string $str [,mixed $encoding_list = mb_detect_order() [,bool $strict = false ]])这个函数有三个参数分别是:1.str:待检查的字符串2.encoding_list:encoding_list 是一个字符编码列表,编码顺序可以由数组或者逗号分隔的列表字符串指定.如果省略了 encoding_lis转载 2020-06-08 19:05:39 · 1073 阅读 · 0 评论 -
php7.1 round、json_encode 精度不准确问题/浮点类型数据出现精度问题 解决方案
一.round项目中使用round(xx, 2)后精度有问题,出现并没有四舍五入到小数点后2位。谷歌很长时间,终于找到解决办法。在php.ini中设置serialize_precision = -1 即可转自:php7.1使用round后精度不准确问题解决方案二.json_encode新项目用的 php7.1.13版本,在使用过程中发现浮点类型数据经过json_encode之后会出现精度问题。举个例子:$data = [ 'stock' => '...转载 2020-06-02 22:50:42 · 1820 阅读 · 0 评论 -
php数字补零的两种方法
在php中有两个函数——至少有两个是否有其他的我还不知道,能够实现数字补零,str_pad(),sprintf()详细如下str_pad顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)其中填补后的长度必须是个正整数,填补位置有三个选项,左边:STR_PAD_LEFT,右边:STR_PAD_RIGHT,两端:STR_PAD_BOTH例如:echo str_pad(1,8,”0″,转载 2020-05-28 18:51:21 · 359 阅读 · 0 评论 -
PHP7.* AES的加密解密
之前写过一篇:PHP AES的加密解密-----【弃用】使用的是php5.*之前的mcrypt_decrypt 函数,该函数已经在php7.1后弃用了,上马的是openssl的openssl_encrypt,openssl_decrypt。上期回顾在php7.* 环境执行之前代码:<?phpdefine('SECRETKEY', '12f862d21d3ceafba1b88e5f22960d55');/** * 加密方法 * @param string $str *转载 2020-05-23 12:18:42 · 2936 阅读 · 1 评论 -
PHP中 hmac_md5 加密算法
<?php/** * 基于md5的加密算法hmac * * md5已经不是那么安全了,多折腾几下吧 * * @param String $data 预加密数据 * @param String $key 密钥 * @return String */function hmac($data, $key){ if (function_exists('hash_hmac')) { return hash_hmac('md5', $data, $key); .转载 2020-05-23 12:13:10 · 1466 阅读 · 0 评论 -
PHP7.2中AES加密解密方法mcrypt_module_open()替换方案
直接粘代码,该类是基于微信公众号消息加密解密所提供的PHP DEMO改造而来,目前使用于彬彬大学APP接口token校验中。php的mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt.class Aes { private $hex_iv = '00000000000000000000000...转载 2020-05-23 12:11:26 · 289 阅读 · 0 评论 -
PHP的内存限制 Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in...
Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in...解释是可用内存已耗尽,这关系到PHP的memory_limit的设置问题。这里有两种方法解决1、修改php.inimemory_limit = 128M这种方法需要重启服务器,很显然,此方法对虚拟机有限制...转载 2020-04-13 16:19:35 · 400 阅读 · 0 评论 -
PHP 获取指定session_id中的数据
sid为指定的session_id,代码如下:$sid= $_POST['sid'];/** 根据当前session_id=xxxx,获取指定session ** 如果$sid 存在,則返回會sessionid ** 若不存在則返回空**/session_id($sid);session_start(); if(!empty($_SESSION)){ $data = $...原创 2020-04-02 20:23:35 · 2540 阅读 · 0 评论 -
ajax请求php,在返回信息前面出现了奇怪的红点点
如果你返回的json数据带有小红点,那么前台ajax是不认的,并且老是走ajax的error方法,不走success方法,因为ajax的dataType:“json”,你指定了返回的是json格式,json格式非常严格。解决办法,就是在你php后端文件,echo输出的前面加一个ob_clean()函数。//这个函数的作用就是清除下json数据前面的bom头ob_clean();...转载 2020-03-18 00:55:17 · 699 阅读 · 1 评论 -
PHP Session重新赋值失败 - session_write_close 小坑记录
场景:操作1:在接口A对$_SESSION['key']赋值A,即$_SESSION['key']=A;操作2:在接口B对$_SESSION['key']赋值B,即$_SESSION['key']=B,同时输出$_SESSION['key']的值,结果为B;操作3:在接口C取出$_SESSION['key'] 的值,结果为A;为什么呢?为什么呢?作者百思不得其解。。。以为...原创 2020-03-04 14:02:44 · 1711 阅读 · 0 评论 -
PHP curl
get ://function curlGet($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); //初始化 $ch = curl_init(); //设置抓取的url curl_setopt($ch, CURLOPT_URL, $url); curl...原创 2019-10-26 19:52:44 · 73 阅读 · 0 评论 -
Laravel 集成微信H5支付
前期准备:1.下载SDK。因为目前H5支付没有DEMO,所以这篇文章时作者自己参考微信扫码支付的DEMO摸索着写的,如果有不对的地方,大家可以告诉作者来改正,下载扫码支付的SDK压缩文件,因为有些代码是公用的,用扫码支付的就行了。微信扫码支付SDK与DEMO下载2.把下载的zip文件解压,放到项目目录里,这里作者放在app文件夹里,方便查看然后在根目录的composer.jso...原创 2019-04-07 19:14:43 · 1770 阅读 · 0 评论 -
Laravel 集成支付宝手机网站支付
前期准备:1.下载SDK,里面还有Demo,可以参照Demo里面的内容快速接入支付宝 手机网站支付SDK&Demo2.把下载的zip文件解压,放到项目目录里,这里作者放在app文件夹里,方便查看3.因为Laravel框架的原因,文件的入口在/public/index.php这个文件这里,所以所有需要require的文件的路径都要在相应的文件里修改一下,这里作者的路劲修改后举...原创 2019-04-07 13:33:44 · 701 阅读 · 0 评论 -
PHP array_diff不起眼的坑 array_diff_key的用法
1)array_diff 是对比两个(或以上数组)的值的差集,注意是对比数组的值,和数组的键无关2)是以第一个数组为对比对象,找上在第一个数组里有但其他数组里没有的值(可以同值但不同键的多个)3)再强调一次,这个方法比较的是数组的值,取出的也是数组的值举个例子:<?php$arr = array();$arr['a'] = '1';$arr['b...转载 2019-04-01 14:02:30 · 3067 阅读 · 2 评论 -
Laravel 集成支付宝电脑网站支付
前期准备:1.下载SDK,里面还有Demo,可以参照Demo里面的内容快速接入支付宝电脑网站支付SDK&Demo 2.把下载的zip文件解压,放到项目目录里,这里作者放在app文件夹里,方便查看3.因为Laravel框架的原因,文件的入口在/public/index.php这个文件这里,所以所有需要require的文件的路径都要在相应的文件里修改一下,这里作者的路劲修改后举...原创 2019-03-26 00:04:24 · 860 阅读 · 0 评论 -
PHP 微信支付 笔记一 $GLOBALS['HTTP_RAW_POST_DATA']被废弃
PHP 微信支付回调在 接口访问类WxPayApi 中的其中一个接口支付结果通用通知接口notify 中需要判断有没有返回数据默认使用的是if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) { # 如果没有数据,直接返回失败 return false;}但 $GLOBALS['HTTP_RAW_POST_DATA'] 在这里为...原创 2019-03-17 13:28:50 · 298 阅读 · 0 评论 -
判断链接是否外链 - PHP、JavaScript
PHP:function isOutlink($url){ $url = "http://hbj.maoming.gov.cn/zwgk_01/hbxw/201812/t20181227_14163.html"; $arr = parse_url($url); if($_SERVER['HTTP_HOST'] == $arr['host']){ return false;...原创 2019-03-06 12:35:40 · 1319 阅读 · 0 评论 -
PHP 判断客户端是手机端还是PC端
/** * 移动端判断 */function isMobile(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { return true; } // 如果via信息含有wap则一定是移动设备 if (...转载 2019-03-06 11:56:39 · 943 阅读 · 0 评论 -
php获得flv视频长度
php获得flv视频长度转载 2017-10-26 14:18:35 · 263 阅读 · 0 评论 -
解决 Not allowed to load local resource 问题
Not allowed to load local resource原创 2017-10-26 09:48:19 · 28891 阅读 · 2 评论 -
PHP调用存储过程失败(没有执行到)--mysql_error()--can't return a result set in the given context
昨天在做一个PHP调用MYSQL的存储过程时遇到一个问题。MYSQL的存储过程没错,直接在Navicat调用 CALL rececle('88')时没错,但一到PHP调用时就出错了,什么都没获取到。最后用mysql_error()获取到了一个错误,为 can't return a result set in the given context。然后在网上查看别人的解决方法才发现的确是自原创 2017-07-05 16:34:43 · 1524 阅读 · 0 评论 -
Laravel 集成微信扫码支付
前期准备:1.下载SDK,里面还有Demo,可以参照Demo里面的内容快速接入微信扫码支付SDK与DEMO下载2.把下载的zip文件解压,放到项目目录里,这里作者放在app文件夹里,方便查看然后在根目录的composer.json文件的autoload数组中的classmap中加入该文件夹的路径,代码如下:"autoload" : { "classmap" : [ "d...原创 2019-03-28 23:08:50 · 1278 阅读 · 0 评论 -
PHP QRcode 生成二维码base64数据,不显示图片
需求:按网址数组生成二维码,返回相应的base64数据插件类:phpqrcode.phpphpqrcode.php下载链接:phpqrcode.php下载链接插件原有的方法实现起来都会把生成的图片输出到浏览器,不符合我只要二维码的base64数据,不自动显示的需求所以开始上网找资料,最后看到别人的做法后灵机一动,自己修改phpqrcode.php类文件,增加一些不直接输出显示二维码...原创 2019-04-02 23:35:25 · 5529 阅读 · 0 评论 -
WEB安全防御总结五 : Cookie(待补充)
漏洞简介:Cookie HttpOnly检测修复建议:1.检测 HTTP Set-Cookie 字段(Http协议的情况下),每一条字段值包含 HttpOnly。处理方式:开启Cookie的HttpOnly。Apache的处理方式为在php.ini文件中,把 session.cookie_httponly 设为 true。具体如下:session.cookie_htt...原创 2019-09-09 16:09:26 · 150 阅读 · 0 评论 -
WEB安全防御总结一 : 响应头(X-Content-Type-Options、X-Frame-Options、X-XSS-Protection)
漏洞简介:可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。修复建议:1. 响应头中存在 X-Content-Type-Options 属性,而且 X-Content-Type-Options 属性值包含“nosniff”。2. 检测 HTTP X-Frame-Options 字段,字段值包含 deny 或 sameorigin。3.配置...原创 2019-09-08 10:28:13 · 13823 阅读 · 0 评论 -
PHPExcel常用属性使用
前景: 需先实例化几个变量:$this->objExcel = new PHPExcel(); //实例化一个PHPExcel变量$this->objExcel->setActiveSheetIndex(0); //设置要操作的Sheet页$this->objActSheet = $this->objExcel->...转载 2019-07-02 15:31:49 · 886 阅读 · 0 评论 -
PHP 关于移动端的一些识别
1.识别手机/移动端的平台类型,区分是IOS或者Android2.识别是否移动端//获取手机/移动端的平台类型function getDeviceType(){ if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){ return "ios";...转载 2019-05-16 09:46:55 · 256 阅读 · 0 评论 -
PHP 调用MySql的存储过程不执行 可能的原因
场景:1.在数据库管理软件里针对MySql类型的数据库写好了存储过程A,确认A没有问题可以正确运行2.PHP调用MySql的存储过程Amysql_query('CALL A()', $db);结果:存储过程A并没有被调用到bug:存储过程A中在定义变量时,不能使用SELECT @birthday:=( SELECT `birthday` FROM `member...原创 2019-05-01 00:36:42 · 794 阅读 · 0 评论 -
PHP调用MYSQL存储过程实例
实例一:无参的存储过程$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT INTO user (id, username, sex) VALUES ...转载 2019-05-03 15:30:20 · 533 阅读 · 0 评论 -
php 操作数组 (合并,拆分,追加,查找,删除等)
转自:http://justcoding.iteye.com/blog/1181962/1. 合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:Php代码arrayarray_merge(arrayarray1array2…,array转载 2014-07-17 22:23:50 · 422 阅读 · 0 评论