php
清晨一场梦
这个作者很懒,什么都没留下…
展开
-
mysql 存储 ipv4 或者 ipv6
mysql 存储 ipv4 或者 ipv6如果将ip存储为字符串类型或者数字类型的字段,会对空间造成浪费。而ipv4的二进制是4个字节32位,ipv6的二进制是16个字节128位,所以选择字段类型为varbinary(16)最为合适。使用php的inet_pton方法将人类可读的 ipv4或 ipv6地址转换为适合 32 位或 128 位二进制结构的地址族,存入数据库中。读取的时候可以使用mysql的hex方法读出十六进制的字符串,或者直接用php的inet_ntop方法还原ip。...原创 2021-09-14 14:57:07 · 1147 阅读 · 0 评论 -
centos8.2 php7.4 开启posix扩展失败
转载自https://blog.csdn.net/loveyoulouyou/article/details/83870552记录一下dnf install --enablerepo=remi --enablerepo=remi php-processremi是/etc/yum.repos.d路径下的remi.repo文件转载 2021-01-05 11:03:22 · 539 阅读 · 0 评论 -
多进程爬站
爬取和解析分离,先将数据爬取到文件系统,方便留存,再解析保留有效数据。爬取,登录验证码图片识别采用百度识别。发送curl类<?phpclass PhpCurl{ public $cookie = ''; /** * 发送post请求 * * @param [type] $url * @param array $params * @param integer $isShowHeader * @return voi原创 2020-11-29 11:04:45 · 234 阅读 · 0 评论 -
php 图像生成缩略图
参考自 https://blog.csdn.net/maoxinwen1/article/details/792024423D全景图过大(5M左右),导致一些不需要加载全景图的页面过慢,所以增加了和全景图一样名字的400X400的缩略图(20k左右),写个脚本初始化150个G的图片数据。<?php$dir= '/var/www/html/upload/siteimg3d';/** * 生成缩略图并拷贝到指定位置 * * @param [type] $file 原图片路径转载 2020-10-28 14:37:41 · 325 阅读 · 0 评论 -
python解析excel到文件系统,php解析入库
php的phpspreadsheet解析excel是真的垃圾…非常耗内存,比如一个10W条的excel文件,内存一定溢出,现在的解决方案是用python的xlrd(比openpyxl快的多) 解析excel到文件系统。ajax上传excel文件。php执行python脚本解析excel到文件系统 (>/dev/null & 为了立即执行exec的下一行代码),ajax立刻返回。 exec(PYTHON." " . realpath(ROOT_PATH . '/../') . .原创 2020-08-26 14:33:12 · 334 阅读 · 0 评论 -
布隆过滤器
转载自 万猫学社 https://www.cnblogs.com/heihaozi/p/12174478.html什么是布隆过滤器布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告诉你某种东西一定不存在或者可能存在。当布隆过滤器说,某种东西存在时,这种东西可能不存在;当布隆过滤器说,某种东西不存在时,那么这种东西一定不存在。布隆过滤器相对于Set、Map 等数据结构来说,它可以更高效地插入和查询,并且占用空间更少,它也有转载 2020-07-15 10:25:08 · 155 阅读 · 0 评论 -
缓存三连:Redis缓存击穿 、缓存穿透、 缓存雪崩 原因与解决方案
概念转载自:https://www.cnblogs.com/Mr-shen/p/12835384.html1.缓存击穿key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。使用互斥锁(mutex key) 比如redis中的 setnx命令,互斥锁会阻塞在缓存失效的时候(判断key拿出来的值为空),不是立即去获取db,而是先使用缓存工具的某些带成功操作返回值的操作(比如Redi转载 2020-07-15 10:14:17 · 365 阅读 · 0 评论 -
会议室申请时间冲突判断
原创 2020-05-25 09:26:10 · 3163 阅读 · 0 评论 -
php脚本 命令行输入项目数据库表名 自动生成lib 配合公司框架使用
公司框架规范是数据库表的字段都为大写字母,lib对应数据库的字段变量是小写,写个php小脚本 实现 自动创建lib库 实现基础增删改差功能,避免重复工作及对lib中数据库字段的频繁大小写的折磨!# 使用方法 php newLib.php 数据库表名 lib名称newLib.php#!/usr/bin/php<?php// $filePath = './T_USER.sql';...原创 2020-03-23 10:05:11 · 349 阅读 · 0 评论 -
thinkphp5配合datatable插件分页后端处理程序
thinkphp5学习之------------thinkphp5配合datatable插件分页后端处理程序第一版DataTable.php v.1.0<?phpuse think\Db;/** * DataTable.php. *//** * datatable结合thinkphp5使用的分页后台处理程序. * * @author B.I.T. * @copyrigh...原创 2019-06-04 15:46:25 · 3936 阅读 · 0 评论 -
彻底前后端分离、解决跨域等问题demo
一、准备两台服务器:一台前端html服务器 http://admin.tp_mall.com一台后端获取数据及redis数据库服务器 http://api.tp_mall.com后端php框架:thinkphp5.1jsonp二、流程及原理用户登录页 http://admin.tp_mall.com/login/login.htmlajax表单提交登录登录成...原创 2019-04-08 16:42:27 · 5802 阅读 · 6 评论 -
遍历文件夹下的所有文件
/** * 使用scandir 遍历目录并返回所有文件绝对路径 * * @param $path * @return array */function getFile($path){ //判断目录是否为空 if(!file_exists($path)) { return array(); } $files = scandir($path); $fileItem = a...原创 2019-03-18 16:01:45 · 5945 阅读 · 0 评论 -
PHP实现预留SessionHandlerInterface接口从而将session存储到数据库中
session在开发web应用中可谓是相当重要,php为session提供了三种存储方式:文件、内存、自定义存储,默认是使用文件存储。这里我们通过php提供的session_set_save_handler()函数来重写session,从而将session存储到数据库中。 注释:session_set_save_handler()设置用户自定义 会话存储函数。 如果想使用 PHP 内置的会话存储原创 2017-12-26 21:08:53 · 15796 阅读 · 0 评论 -
PHP设计模式——单例模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在双重验证。 懒汉式具体代码:<?php /** * Created b转载 2018-01-28 20:40:18 · 13401 阅读 · 0 评论 -
php获取日期间所有天
//获取任意两天之间的所有日期 public function prDates($start,$end){ $dt_start = strtotime($start); $dt_end = strtotime($end); $days = array(); while ($dt_start<=$dt_end){原创 2018-05-08 15:04:22 · 13469 阅读 · 0 评论 -
php7 部分 新特性
部分php7的新特性1. NULL合并运算符 由于日常使用中存在大量同时使用三元表达式和 isset()的情况,NULL 合并运算符使得变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。// 如果 $_GET['name'] 不存在 返回 'eric',否则返回 $_GET['name'] 的值$name = $_GET['name'] ?? '...原创 2018-09-11 14:55:12 · 12702 阅读 · 0 评论 -
laravel + nginx 配置路由 除了 / 能访问 其他都是 404
在nginx的配置文件夹内,新增个laravel-test.conf配置文件在 文件中 添加location / { try_files $uri $uri/ /index.php?$query_string;}即可原创 2018-09-17 10:27:32 · 17094 阅读 · 2 评论 -
php 依赖注入 和 控制反转 php设计模式
转载自 :https://blog.csdn.net/lijingshan34/article/details/71526118什么是依赖注入?IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection,简称DI)。当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的...转载 2018-09-18 10:47:31 · 18093 阅读 · 1 评论 -
php截取特定字符前面和后面的内容
本文转载自:https://www.cnblogs.com/zhengdongdong/p/9603382.html1、php 截取特定字符后面的内容可以使用函数strripos,获取一个字符串在另一个字符串中第一次出现的位置。$number = ‘1_0’;result=substr(result = substr(result=substr(number,strripos($numbe...转载 2018-12-13 10:25:53 · 16718 阅读 · 1 评论 -
php 获取两个月份之间的所有月份数组
转载自 https://blog.csdn.net/rovast/article/details/50281145/** * 计算出两个日期之间的月份 * @author Eric * @param [type] $start_date [开始日期,如2014-03] * @param [type] $end_date [结束日期,如2015-12] * @param str...转载 2019-01-17 20:08:26 · 9208 阅读 · 0 评论 -
统计模块 的 数据库 按 月份 分表 建表 设计
基于统计模型的数据量过大导致单表数据过多,采用按月份分表建表的数据库设计,即解决了单表数据量过大的问题,还便于维护数据的时效。方案如下: $visitLogObj = new VisitLog($this->getDb()); if($visitLogObj->isset_table($month)){ //存在本月这张表 $visitLogObj->a...原创 2019-03-08 10:12:28 · 6022 阅读 · 0 评论 -
php通过类名查找这个类所在的路径(即实际引用的是哪个类)
实际上就是应用了类的反射机制class a{ public $a; protected $b; private $c;}$func = new ReflectionClass('a'); //所要查询的类名 echo $func->getFileName();原创 2017-11-06 09:41:20 · 16736 阅读 · 0 评论