![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
qfgeek
事事有交待!!
展开
-
PHP通用型CURL
function http_curl_v1($url, $postBody, $method = "POST") {// $all_url_arr = explode("?", $all_url);//请求的全部地址,此方法可以完全替代:file_get_contents// $url = $all_url_arr[0];//请求地址// $postBody = $this->url_to_arr($all_url_arr[1]);/...原创 2022-05-25 17:32:44 · 221 阅读 · 0 评论 -
PHP的AES加密,模式为“AES/CBC/PKCS5Padding“,含解密
加密需要php5版本,php7方法已弃用/**************AES加密请求数据*******************/ /** * 加密通过AES加密请求数据/ * * @param array $query * @return string */ public function enAES($key, $input) { $size = mcrypt_get_block_size(MCRYPT_RI.原创 2022-05-25 17:27:56 · 686 阅读 · 0 评论 -
PHP实现AES-128-CBC加密+解密
//AES加密 public function encrypt($input) { // 传false相当于base64_encode()编码了一次 $encode = base64_encode(openssl_encrypt($input, "AES-128-CBC", '525A3106375942FC', false, '0010010000100100')); return $encode; } ...原创 2022-05-09 10:58:06 · 1507 阅读 · 0 评论 -
PHP实现SHA1withRSA签名
/** * 拼接需要签名的内容 * @return string */ public function paiXu($Parameters) { //按字典序排序参数 ksort($Parameters); $sign = ''; foreach ($Parameters as $k => $v) { $sign .= $k . "=" . $v . "&am...原创 2022-05-09 10:06:22 · 957 阅读 · 0 评论 -
Nginx隐藏PHP入口文件index.php(ThinkPHP伪静态)
如果没有自定义域名,则打开Nginx配置文件:nginx-conf 对应着改如果自定义了域名,则打开Nginx配置文件:vhosts-conf 对应着改 location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^/(.*)$ /index.p原创 2021-08-27 16:16:04 · 653 阅读 · 0 评论 -
PHP类的自动加载
autoload.php:类的自动加载代码如下<?phpfunction classLoader($class){ $path = str_replace('\\', DIRECTORY_SEPARATOR, $class); $file = __DIR__ . DIRECTORY_SEPARATOR .'src'. DIRECTORY_SEPARATOR . $path . '.php'; if (file_exists($file)) { re.原创 2021-08-27 16:03:46 · 521 阅读 · 0 评论 -
PHP非对称加密(公钥加密私钥解密):RSA (RSA/ECB/PKCS1Padding)+base64_encode/bin2hex加密
所谓非对称,就是使用公钥/私钥加密,然后用对应的私钥/公钥解密1.钥配对的公钥,私钥://公钥(注意包括头(-----BEGIN PUBLIC KEY-----)尾(-----END PUBLIC KEY-----)标志)-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbdq5NjtUEkAQ6wucPuhC0aRvSMsaX3GrhkwsLLdWZnVNVpkJRwyPFq9HJNuntRw7P9Sb3Tk.原创 2021-07-30 17:09:22 · 4069 阅读 · 1 评论 -
PHPStrom的快捷键突然失效解决方案
可能是已网易云音乐的快捷键冲突了,把全局快捷键去掉!!原创 2020-07-31 14:12:44 · 493 阅读 · 0 评论 -
PHP图片内容以二进制数据流的形式发送(CurlFile使用)
//第一个参数:图片路径(包括图片文件)//第二个参数:图片格式//第三个参数:图片名称$obj_cashCard = new CurlFile($param['img_path'], "image/jpg", $param['file_name'] . '.jpg');原创 2020-07-28 17:32:33 · 1776 阅读 · 0 评论 -
签名算法SHA256withRSA,RSA数字证书公钥私钥生成
RSA数字证书公钥密钥生成:在Linux系统下运行一下命令生成:如果提示输出密码,可以为空生成的公钥rsa_public_key.pem和密钥rsa_private_key.pem文件在根目录下# openssl# genrsa -out rsa_private_key.pem 2048 Generating RSA private key, 2048 bit long modulus# pkcs8 -topk8 -inform PEM -in rsa_private_key.pe原创 2020-07-28 17:07:04 · 7317 阅读 · 1 评论 -
PHP图片上传,框架通用
// 图片上传 public function uploadImg() { $imgname = $_FILES['myfile']['name']; $tmp = $_FILES['myfile']['tmp_name']; $filepath = APPPATH . "../PAYLOG/PICTURE/"; if (!is_dir($filepath)) { //判断目录是否存在 不存在就创建 .原创 2020-07-16 13:53:44 · 434 阅读 · 0 评论 -
Ascii排序(按字母从小到大排序),并以url地址传参方式拼接
//准备待签名参数:$arr为数组//对需要签名的参数,首先需要根据参数名的首字母,按从a到z的顺序进行排序.若首字母相同,则根据第二个字母进行排序,以此类推.注意:使用快付通提供的客户端,则可以忽略此步骤,排序及具体的签名全部由客户端来完成,无需商户自己处理.//排序完成后,再把所有参数以”&”字符作为分隔符进行连接.示例如下(此例仅为演示如何连接参数,其中的参数值并未遵守接口规范...原创 2020-04-22 17:13:58 · 1390 阅读 · 0 评论 -
PHP常用数组函数(含按键值删除二维数组中的元素)
// 1.array_search():在数组中搜索键值"red",并返回它的键名$a=array("a"=>"red","b"=>"green","c"=>"blue");echo array_search("red",$a);// a// 2.array_splice():从数组中移除元素,并用新元素取代它:$a1=array("a"=>"red","b"=...原创 2020-04-01 16:51:09 · 1231 阅读 · 0 评论 -
foreach ($cc as $key => &$item);$item加&与不加&的区别
public function test(){ // 加&的: $cc = [[1],[2]]; foreach ($cc as $key => &$item){ $item['aa'] = 111; ...原创 2020-03-28 11:53:50 · 1024 阅读 · 0 评论 -
五层架构(MVC+biz+lib)
或许许多人都听说过MVC,但运用时可能会模糊,有时分着分着都跑偏了。M:模型V:视图C:控制器biz:业务逻辑lib:功能常规C:// 常规C的操作public function test(){ // 1.接收参数 // 2.参数效验 // 3.实例biz(如果没有biz,则实例模型M) // 4.调用biz/M中的方法,返回...原创 2020-03-24 12:01:47 · 1379 阅读 · 0 评论 -
windows设置右键sublime Text3
1.win+R打开cmd窗口,输入regedit,打开注册表2.依次找到HKEY_CLASSESS_ROOT->*->Shell,下面新建项,命名为Edit with Sublime Text3。3.在项“Edit with Sublime Text”下新建字符串值,命名为Icon,值为 E:\sublime text3\Sublime Text 3\sublime_...原创 2020-03-11 10:35:38 · 301 阅读 · 0 评论 -
PHP网页定时器和跳转页面
$url = '跳转的URL地址'header("location:" . $url);// 或// Refresh:刷新// CONTENT="5":每隔5秒// url:跳转的地址(可不设置,则只是定时刷新)echo '<META HTTP-EQUIV="Refresh" CONTENT="5" url="><font color="red">5秒自动...原创 2020-03-10 23:44:14 · 250 阅读 · 0 评论 -
PHP通过CURL或file_get_contents请求第三方地址
CURL://访问网页数据 public function get_web_content($url, $curl_data) { $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT...原创 2020-03-09 11:26:52 · 437 阅读 · 0 评论 -
PHP二维数组根据字段排序
1.array_column() 返回输入数组中某个单一列的值。2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。SORT_ASC:正序SORT_DESC:倒序$data = array( array( 'id' => 5698, ...原创 2020-03-03 18:50:05 · 384 阅读 · 0 评论 -
PHP各种数据类型转换
第一种转换方式: (int) (bool) (float) (double) (real) (string) (array) (object)$num1=3.14; $num2=(int)$num1; var_dump($num1); //输出float(3.14) var_dump($num2); //输出int(3) 第二种转换方式: intval...原创 2020-03-03 18:44:30 · 121 阅读 · 0 评论 -
windows改变php版本
用composer安装tp6版本时报错如下:Could not find package topthink/think with version 6.0.* in a version installable using your PHP version 7.0.12这是因为php版本太低,composer上要求php版本需要>=7.1可是我phpstudy明明启动的是php...原创 2019-12-26 14:34:12 · 1731 阅读 · 0 评论 -
三图解决phpStorm部署ftp
原创 2019-12-13 14:38:44 · 228 阅读 · 0 评论 -
TP5.1类的自动加载
TP5类的自动加载学会了作用就是:可以在框架中任意地方创建类,并调用类的自动加载代码原理这里就说不清了,我兴趣的可以看看慕课网singwa老师的课:https://coding.imooc.com/class/331.html下面直接介绍如何使用:类的加载文件路径:项目根目录\thinkphp\library\think\Loader.php流程:index.php(入口文...原创 2019-10-31 18:33:07 · 669 阅读 · 0 评论 -
用户登录,token验证开发(含过期时间)
其实所谓的token,就是一串加密的字符串需求:用户登录访问页面后,在未退出登录账号的情况下,再次访问页面无需再次登录首先我们抛开过期时间不管设计思路:主要是前端有个缓存可以存取一些信息一段时间,所以在注册时生成一串加密好的数字,连同用户信息一起添加到数据库的用户表中,token字段必须唯一 用户登录成功,查询出这个用户的token返回给前端保存起来 用户再次登录时,前端把保存...原创 2019-03-02 20:41:06 · 27858 阅读 · 6 评论 -
PHP增删查改性能优化
需求:数据加载慢(卡)其实是SQL的优化学习路线:(选择数据库)-》业务分析(表,字段)-》逻辑设计(范式-》关系表,反范式-》宽表)-》物理设计(选择存储引擎》数据类型》对象命名-》建立库表)-》索引优化(慢查询-》执行计划)-》SQL改写-》事务ACID(由于高并发-》产生阻塞,死锁)-》高可用,高可扩展(集群,负载均衡,主从复制,读写分离,分库分表(水平分割,...原创 2019-02-19 10:10:16 · 7430 阅读 · 0 评论 -
json格式输出数组隐藏键值方法
$this->displayByData是框架封装好的一个输出json格式的方法重点来了:当 赋值的是一个数组,且键值是自动排序(从0开始排序),赋值后输出json格式,键值会自动隐藏掉!!实际开发效果如上图!!...原创 2019-01-14 15:10:36 · 850 阅读 · 0 评论 -
根据数据库表字段删除所有相关信息(删库)
需求:每当项目上线前,都要测试一番,产品经理自己瞎操作一波后会来找后台,给我把有关XXX的数据都删除了,然后你就去操作数据库,把有关的数据删除!!代码思路如下:/** * @param $field_name /字段名 * @param $field_value /字段值 * @throws \think\db\exception\BindParamExce...原创 2019-03-14 19:20:35 · 1139 阅读 · 0 评论 -
TP5 事务
1.引用TP5的think\Db类:use think\Db;2.下面为实现代码:Db::startTrans(); //启动事务try { 这里写SQL语句 Db::commit(); //提交事务 } catch (\PDOException $e) { Db::rollback(); //回滚事...转载 2019-03-13 12:02:44 · 1110 阅读 · 0 评论 -
TP5的目录常量和路径
THINK_PATH 框架系统目录ROOT_PATH 框架应用根目录APP_PATH 应用目录(默认为application)CONF_PATH 配置目录(默认为APP_PATH)LIB_PATH 系统类库目录(默认为 THINK_PATH.'library/')CORE_PATH 系统核心类库目录 (默认为 LIB_PATH.'think/')TRAIT_PATH 系统trait目...转载 2019-03-25 10:55:00 · 3799 阅读 · 0 评论 -
PHP二维数组去除重复值
$excel_array = [['a'],['b'],['a']];$array=[];foreach($excel_array as $key=>$v){ if(in_array($v[0],$array)){ //如果存在就报错 echo "这个".$v[0]."重复了";die; } else{ $array[]=...原创 2019-03-26 15:25:40 · 1225 阅读 · 0 评论 -
PHP导入Excel和导出Excel
导入Excel基本思路:接收前端传过来的Excel文件 将Excel文件转化为一个数组 将数组导入到数据库从百度下载一个PHPExcel类:https://github.com/PHPOffice/PHPExcel用IOFactory.php类//导入Excel public function importExcel() { require_on...原创 2019-03-26 15:43:07 · 9410 阅读 · 0 评论 -
获取MySQL数据库表结构的信息(字段名,字段类型,注释等)
直接复制查询用就懂了!!select COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT from information_schema.columns where TABLE_NAME='表名'或者select COLUMN_NAME,DATA_TYPE,COLUMN_COMMENT from information_schema.COLUMNS wher...原创 2019-03-27 16:00:34 · 15679 阅读 · 0 评论 -
PHP的bcadd()函数用法
求和后保留X位小数的函数:一般用于价格累加。查询出来的价格即使是浮点型,但是运用“+=”后会变成整型,若需求需要保留小数位,则需要用到这个函数bcadd(被加数,加数,保留几位小数);bcadd(1,3,2);//4.00...原创 2019-04-03 11:19:13 · 35247 阅读 · 0 评论 -
PHP获取今天, 本周 ,半月 ,本月 ,本季 ,本年,昨天 ,上月时间段
//今天date('Y-m-d',time());date('Y-m-d',time());//本周date('Y-m-d',mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y")));date('Y-m-d',mktime(0,0,0,date("m"),date("d")-date("w")+7,date("Y")));/...原创 2019-04-03 11:40:45 · 1414 阅读 · 0 评论 -
apizza接口文档传二维数组
原创 2019-07-02 11:31:58 · 1278 阅读 · 0 评论 -
PHP函数,方法,接口
函数:以单词 "function" 开头,如 function xx(){}方法:类里面的,如 public function xx(){}接口一般指类里的方法函数的命名使用小写字母和下划线(小写字母开头)的方式,例如get_client_ip; 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写),例如 UserType (大小写不敏感); 方法,属性的命名使用驼峰法...原创 2019-08-15 16:18:28 · 494 阅读 · 0 评论 -
转盘抽奖(主要:概率和JQ)
转盘抽奖涉及的重点:JQ特效,概率逻辑设计:1.把前端页面设计好,转盘可以用table标签做,样式设计好2.控制器把抽奖物查询出来,有序输出到前端页面设计好的转盘上3.写JQ特效,原理就是轮流给每个抽奖项添加特定样式,实现看起来转盘转动的效果4.抽奖,Ajax调用控制器的方法,该方法有三步: 1.查询出抽奖物(2步骤类似) 2.调用概率方法 3.把调用概率选...原创 2018-09-28 16:41:51 · 5945 阅读 · 2 评论