合集-PHP
摘要:一、二维数组转一维数组 function towarr_to_onearr($arr,$item) { foreach ($arr as $key => $value) { $newArr[] = $value[$item]; } return $newArr; } 二、对二维数组进行指定key排序
阅读全文
摘要:一、时间戳和日期互相转换 // 获取时间戳 $date = time(); // 获取当前时间戳 $date = mktime(0, 0, 0, 10, 10, 2020); // 获取指定时间的时间戳 2020年10月10日0时0分0秒 // 日期转换为时间戳 $date = "2019-08-0
阅读全文
摘要:PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。 首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net/package/zip (相应php版本的zip包) 先把需要下载的文件路径找
阅读全文
摘要:基于php大文件分片上传至七牛云,使用的是七牛云js-sdk V2版本,引入js文件,配置简单,可以暂停,暂停后支持断点续传(刷新、关闭页面、重新上传、网络中断等情况),可以配置分片大小和分片数量,官方文档https://developer.qiniu.com/kodo/6889/javascrip
阅读全文
摘要:基于php+webuploader的大文件分片上传,带进度条,支持断点续传(刷新、关闭页面、重新上传、网络中断等情况)。文件上传前先检测该文件是否已上传,如果已上传提示“文件已存在”,如果未上传则直接上传。视频上传时会根据设定的参数(分片大小、分片数量)进行上传,上传过程中会在目标文件夹中生成一个临
阅读全文
摘要:Windows环境下 一、开启 Imagick 扩展 1、安装PHP扩展:Imagick,下载地址 https://pecl.php.net/package/imagick 注意和php版本保持一致; 2、将下载下来的文件解压,把php_imagick.dll复制到php/ext下,即php的扩展目
阅读全文
摘要:参数:$birth_year:出生年份;$birth_month:出生月份;$birth_day:出生日 function getAgeByBirth($birth_year,$birth_month,$birth_day){ if(empty($birth_year) || empty($birt
阅读全文
摘要:使用pdfparser对PDF转换成文本形式,转换后没有格式。 原始PDF: 转换成文本: 第一步:安装pdfparser composer require smalot/pdfparser 第二步:使用 $parser = new \Smalot\PdfParser\Parser(); $pdf
阅读全文
摘要:public function dominant_color() { $image = 'D:/Python/flow/test_photos/12240303_80d87f77a3_n.jpg'; $rTotal = $gTotal = $bTotal = $total = 0; $i = ima
阅读全文
摘要:$array = array( array('id' => 1, 'pid' => 0, 'name' => '河北省'), array('id' => 2, 'pid' => 0, 'name' => '北京市'), array('id' => 3, 'pid' => 1, 'name' => '
阅读全文
摘要:ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); //执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去 $interval=5; //每
阅读全文
摘要:自己写的权限管理,大致思路:用户登陆成功之后,查出该用户的权限列表,并把权限列表存到session中,进入系统后,再判断该模块是否在session中,如果存在就说明有该权限,就显示出来,如果没有就说明没有该权限,就不显示。 可以按角色分配权限,也可以给某个人自定义权限,需要给角色分配权限时,把用户的
阅读全文
摘要:通过php和redis实现一个小功能排行榜,用的数据类型是有序集合:zrevrange 递增排序,zrange 递减排序 /** * 排行榜 */ public function rank() { // $this->zrem($this->cachekey); $this->redis->del(
阅读全文
摘要://连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('123456'); /*********************Key(键)*********************/
阅读全文
摘要:环境:wamp,redis 要求:安装WAMP,Redis,以及为PHP安装Redis扩展(怎么安装Redis可以看看我前面写的文章) 秒杀功能大致思路:获取缓存列表的长度,如果长度(llen)等于0,就停止秒杀,即秒杀失败,如果长度大于0,则继续运行,先从缓存中移除一个元素(lpop),再进行数据
阅读全文
摘要:本篇文章是通过ThinkPHP5和Redis实现购物车,功能包括:购物车列表、添加购物车、获取部分商品、获取部分商品总数量、获取全部商品总数量、商品减一、修改商品数量、删除商品、清空购物车,这些功能基本上能够满足购物车的需求,代码写的不够严谨,但大致逻辑就是这样。 前提:安装PHP运行环境,安装Re
阅读全文
摘要:SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一,下面我们来看看吧。 简单讲一下 SSO 单点登录系统
阅读全文
摘要:接上篇文章“composer安装第三方类库” 方法一: 1.使用命令下载类库 composer require monolog/monolog 2.新建index.php文件 <?php require __DIR__.'/vendor/autoload.php'; use Monolog\Logg
阅读全文
摘要:一、Windows环境上安装composer 前提:已安装PHP环境,确定PHP版本在PHP 5.3.2+以上。Composer中文文档 1.下载并运行 Composer-Setup.exe。它将安装最新的Composer版本并自动设置您的PATH环境变量,以便您可以在命令行任何目录下使用compo
阅读全文
摘要:项目想要数据库读写分离,需要配置两个方面,一个是数据库配置,另一个是ThinkPHP5配置,前面写过一篇关于MySQL读写分离配置的文章MySQL主从同步及读写分离,这篇介绍ThinkPHP5里怎么运用 主服务器ip:192.168.8.102,从服务器ip:192.168.8.103 一、修改TP
阅读全文
摘要:方法一:使用ThinkPHP5模板函数 {$data.name|substr=0,3} 与 {$data.name|substr=###,0,3} 等效。 方法二:common.php文件写下如下函数 /** *+ * 字符串截取,支持中文和其他编码 *+ * @static * @access p
阅读全文
摘要:一、配置 开启socket组建,否则会报 Fatal error: Call to undefined function socket_create() 错误 1、打开php.ini配置文件,搜索 extension=php_sockets.dll,把前面的‘;’分号删掉。修改之后重启服务。 注意:
阅读全文
摘要:一、配置 开启socket组建,否则会报 Fatal error: Call to undefined function socket_create() 错误 1、打开php.ini配置文件,搜索 extension=php_sockets.dll,把前面的‘;’分号删掉。修改之后重启服务。 注意:
阅读全文
摘要:有些网站在注册的时候,会向用户的邮箱发送邮件,点击邮件中的链接激活账户,基本原理就是在注册的时候(即点击发送邮件的时候),先把用户的信息存进数据库,另外还有一个激活状态的字段(默认是未激活)点击邮件中的链接,验证通过之后,该字段状态会改为已激活,邮件中的链接信息包括:用户id(只要是在数据库中能找到
阅读全文
摘要:PHP发送邮件需要开启下面几个服务: SMTP:简单邮件传输协议,用来发送邮件 POP3:简单的邮件访问协议,单向的,本地对邮件的操作不会同步到邮件服务器,用来接收邮件 IMAP:是一种比POP3更复杂的邮件访问协议,是双向的,本地对邮箱的操作会同步到邮箱服务器,用来接收邮件 发送之前需要拥有自己的
阅读全文
摘要:这个不是无限级评论,只有两层,实现起来比较简单点,所有评论的parent_id都是对应的第一级评论的id,新增评论的时候,就在对应的评论下面追加,并且用prepend()把最新评论放到最前面 数据库设计(我这里没有真正用到数据库,为了测试,用的都是写死的假数据,所以后台请求的接口只是返回了一个cod
阅读全文
摘要:开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。 我们在设计签名验证的时候,请注意要满足以下几点: 可变性:每次的签名必须是不一样的。 时效性:每次请求的时效,过期作废等。 唯一性:每次的签名是唯一的。 完整
阅读全文
摘要:第一种,POST 和 GET 合并 function http_curl($url, $type = 'get', $data = ''){ $cl = curl_init(); //初始化 curl_setopt($cl, CURLOPT_URL, $url); //设置 cURL 传输选项 cu
阅读全文
摘要:"^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //非正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?\d+$" //整数"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)"^(([0-9]+\.[0-
阅读全文
摘要:先上图 实现流程: 1、授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onload里判断是否已授权,若已授权就直接跳转正文的页面。这里只说授权按钮和正文在同一页面的情况。 2、在onload里
阅读全文
摘要:1、去官网下载类库 “https://www.barcodebakery.com/en/download”,选择自己的版本下载 2、解压放到“E:\phpstudy\PHPTutorial\WWW\guahao\vendor\下”,其中class文件是所有的类文件,生成条形码就是调用文件夹里的类,f
阅读全文
摘要:1、附近的人 2、两点之间的距离 转“https://www.php.cn/php-weizijiaocheng-316.html”
阅读全文
摘要:html js,要引入layui.js php Controller控制器 php model模型
阅读全文
摘要:使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心。 1. accessKeyId 相当于你的个人账户密钥; 2. accessKeySecret 与上是成对的; 3. SignName 个人签名,在发出去的短信中,这个签名会显示在开头,类似
阅读全文
摘要:php日期格式化一般使用date()来完成,此函数的声明及定义如下图所示,其参数有很多,这里按常用的年、月、日、时、分、秒、星期来简单介绍。 一、年、月、日格式化 年的格式方法:y:小写的y只显示2位数字,Y:大写的y显示4位数字 小技巧:y是year的首字母,大的就多,意思是大写的表示用的数字多(
阅读全文
摘要:1、此方法可以下载图片、压缩包、pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下 //远程路径,名称,文件后缀 function downImgRar($url,$rename,$ext){ switch ($ext) { case 'jpg': //下载图片 $file_path =
阅读全文
摘要:现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能。现在很多极验都是第三方的,也很多都是收费的。今天在这里给大家分享自己用原生php实现的一个极验的代码。用原生php的好处就是以后你要嵌套到什么框架,可
阅读全文
摘要:本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录,列出目录里的文件等功能,路径后面别忘了加"/" 创建指定路径下的指定文件 * @param string $path(需要包含文件名和后缀) * @param boolean $over_write 是否覆盖文件
阅读全文
摘要:responseMsg(); }else{ $wechatObj->valid(); } class wechatCallbackapiTest { //验证消息 public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoS...
阅读全文
摘要:PHP根据身份证号,自动获取对应的星座函数,然后自动返回对应的星座,自动返回性别,判断是否成年
阅读全文
摘要:最近做课程表的项目,找了好多个插件感觉都不好用,无意间看到了fullcalendar,还挺简单的,很方便,先贴一张项目页面 php后台代码:这里我把要显示的格式在后台封装好了,到前台直接取出来拿来用就可以了。 注意:title和start即标题和开始时间是必须要有的,其他的参数可选,其中 start
阅读全文
摘要:最近在做课程表的项目里用到了这个,有个日期段,选择好周几之后,想获取在这个日期段内选中的星期对应的日期,如下图,代码如下
阅读全文
摘要:最近做项目发现使用paginate分页,搜索的时候点下一页搜索条件就变没了,所以在网上找了找一些方法,有的说是使用Page类,但是用习惯了paginate,再用Page不习惯,找到了一个方法,可以使用paginate搜索分页 ->paginate(15,false,['query'=>request
阅读全文
摘要:对于一维数组排序比较简单,像使用sort(),asort(),arsort()等函数进行排序,但是对于二维数组比较麻烦,所有借鉴网上的总结了一下
阅读全文
摘要:获取指定月份的开始时间戳和结束时间戳,只需传入年月即可(2018-01,2018-1两种格式都可以) 结果
阅读全文
摘要:之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 这个是之前写的批量导入表格数据到数据库 使用PHPExcel实现数据批量导入到数据库
阅读全文
摘要:在账户表的基础上,我新建了一个账户account_session表,用来记录登录账户的account_id和最新一次登录成功用户的session_id,然后首先要修改登录方法:每次登录成功后,要将登录用户信息写入Session的同时还要更新account_session表里相应账户的session_
阅读全文
摘要:html代码 js代码 php接口
阅读全文
摘要:1.PHP获取未来一周的时间 2.PHP获取本周每一天的时间 效果:
阅读全文
摘要:1.前端代码 后台代码: 网页运行结果: 下载word打开效果: 原理: 首先获取到要下载的前端页面的html代码(file_get_contents方法),然后对文档流进行相关配置,最后输出即可。 目前不能把图片下载到word里面,哪位大神有想法,欢迎留言交流。
阅读全文
摘要:流程: 1.拼装奖项数组,2.计算概率,3.返回中奖情况 代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数 效果图:
阅读全文
摘要:1.PHP判断 封装。php代码: 调用示例:直接调用 2.官方js判断 3.js判断 转载自 判断当前页面是否在微信浏览器中打开
阅读全文
摘要:1.首先在common.php公共函数文件下写需要的公共函数(appalication/common.php文件下),在此文件下写的函数可以在项目任意页面直接调用 此时,我把日志文件放在了/public/logs/目录下,日志文件名是按照当前日期的格式命名,方便排错 2.调用:直接使用定义的函数,并
阅读全文
摘要:插件及源代码可以在这里下载 http://www.jq22.com/jquery-info5231下面是根据下载的demo进行补充:使用bootstrap界面美观,可预览,可拖拽上传,可配合ajax异步或同步上传,下面是效果图: 前端代码:fileinput.html 后台代码:
阅读全文
摘要:使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。 使用 transaction 方法操作数据库事务,当发生异常会自动回滚 1.手动控制事务 2.自动控制事务
阅读全文
摘要:// 本月起始时间: $begin_time = date ( "Y-m-d H:i:s", mktime ( 0, 0, 0, date ( "m" ), 1, date ( "Y" ) ) ); $end_time = date ( "Y-m-d H:i:s", mktime ( 23, 59, 59, date ( "m" ), date ( "t" ), date...
阅读全文
摘要:1.在thinkphp/library/think/paginator/driver目录下新建文件Page.php 注意命名空间和继承 2.修改application/config配置文件 效果:限制分页栏每页显示的5页 点击4时会显示2-6页,同理,点击5时会显示3-7页,即每次只显示5个页码
阅读全文
摘要:1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrcode/files/,把下载的文件夹放到\thinkphp\vendor下 2.在控制器里(也可在公共函数库里)添加函数qrcode(); 前端显示: 参数说明: /* * pn
阅读全文
摘要:Db::query();Db::execute(); Db::table()->select(); 所有数据,二维数组,结果不存在时返回空数组Db::table->find(); 一条数据,一维数组,结果不存在时返回NULL Db::table->value(); 一条数据, 结果不存在时返回空Db
阅读全文
摘要:首先要发生异常! 所谓的发生,指的是抛出一个异常! 然后是处理异常! 所谓的处理,就是一旦异常出现,要得到并处理这个异常,通常有两个阶段组成:监听和捕获! 流程: 1. 抛出异常 throw 2. 监听异常 try 3. 捕获异常 catch 注意:这里的异常,其实就是一个异常对象,这个对象必须是由
阅读全文
摘要:思路:前台输入账号密码,后台自定义一个函数checkNamePwd()用于验证账号密码正确与否,在控制器里调用,其中,checkNamePwd()方法验证账号密码正确性是首先通过账号查找密码,然后把查找出来的密码和用户输入的密码比较,相同则登陆成功,否则登录失败! 首先在模型类定义一个函数check
阅读全文
摘要:前几篇(上传,缩略图,验证码,自动验证表单)文章介绍的功能实现都是基于ThinkPHP框架封装好的类进行实现的,所以这次自己写一个分页类在框架中使用。 首先在根目录建一个Tools文件夹,在Tools文件夹下建Page.class.php类文件,这样以后自定义的工具类都可放在Tools文件夹下。 此
阅读全文
摘要:首先了解父类Image.class.php(ThinkPHP/Library/Think/Image.class.php)中的一些函数 1:open() 打开被处理的图片 2:thumb() 生成缩略图 默认1等比缩放 (其中2,3,4,5,6代表的含义参见父类文件Image.class.php)
阅读全文
摘要:首先了解父类Verity.class.php(ThinkPHP/Library/Think/Verity.class.php)中的一些函数 1:check() 校验验证码是否正确 2:entry()输出验证码并把验证码的值保存的session中 3:authcode() 加密验证码(此方法在chec
阅读全文
摘要:刚学的使用ThinkPHP框架简单上传附件(图片,文档,视频等文件) 首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的几个函数 1:getError() 获取上传错误信息 2:uploadOne() 上传单个
阅读全文
摘要:自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模
阅读全文
摘要:1) { echo ""; return; } //HTTP头部信息 header("Content-type: application/octet-stream"); header("Accept-Ranges: bytes"); he...
阅读全文
摘要:1.fread — 读取文件(可安全用于二进制文件) 语法:string fread ( int $handle , int $length ) 结果: 2.file_put_contents — 将一个字符串写入文件 结果: 3.fputs():向文件中写一行
阅读全文
摘要:1.打开文件(fopen) 语法:resource $fp=fopen(文件地址,模式),返回的是文件指针(file pointer) 2.读文件(fread ,file_get_contents) 语法:string fread ( $fp , 文件大小 ) file_get_contents 将
阅读全文
摘要:我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量: __construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),
阅读全文
摘要:前台php代码 后台php代码 结果: 浏览器: 文件夹:
阅读全文
摘要:分析: 当原图是横屏或竖屏的时候,希望缩略图会保持原来的比例缩放,不改变原图的完整性,即等比缩放! 此时只需确定原图的宽高,以及目标图的最大宽高,比较目标图的宽高比例与原图的宽高比例的大小,以此来判断原图是横屏或竖屏来确定以高或宽为标准即可! 代码如下: 完整代码如下: 结果如下: 竖屏图片 横屏图
阅读全文
摘要:原理:就是将大图缩小并另存为小图 以此图为例,使其生成缩略图! 首先要使用到以下函数 分析:确定两个函数的参数 原图 目标图: 代码如下: 结果如下: 裁剪:
阅读全文
摘要:方案一: 浏览器由于安全的限制,不允许跨域访问。但是PHP服务器是允许的。我们可以通过使用PHP文件做代理,通过PHP来调用接口。 详细接口分析可参看:http://www.cnblogs.com/wangjingblogs/p/3192953.html 返回JSON格式 PHP代码 HTML代码
阅读全文
摘要:使用JSON实现分页可直接用 Fenye.html Fenye.php
阅读全文
摘要:对于初学者,肯定会遇到不同的错误提示,比如:警告,致命,等等,其中NOTICE错误等级最低,页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bbs\list.p
阅读全文
摘要:在php中,中文乱码非常头疼,很麻烦,所以根据在编程的经验,总结以下方法(以utf_8为例), 1.php中在头部header设置编码方式 2.php中用iconv转码 3.在html中用<meat>标签声明 这些都是编程中经常用到的,如果还有其他方法,欢迎指点!
阅读全文
摘要:class_exists 判断一个类是否存在,参数为一个名字! interface_exists 判断一个接口是否存在,参数也是为一个名字! method_exists 判断一个方法是否存在! 需要两个:第一个对象变量,第二个是一个方法名! 返回一个布尔值! 判断某个属性是否存在,就是使用isset
阅读全文
摘要:PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> <head> <title>文件上传</title> </head> <body> <form enctype="multip
阅读全文
摘要:1) 初始化session session_start(); 2) 向session添加数据 $_SESSION[“key”]=$val 3) 从session获取某个值 $val=$_SESSION[key] 4) 删除session关联的数据 删除指定数据:unset($_SESSION[Key
阅读全文
摘要:PHP中Cookie的使用 添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数据就像小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取,保存在客户端的浏览器缓存目录下 ①
阅读全文
摘要:如果一个类在多个脚本中都需要使用,可以将一个类的定义代码,单独的封装到一个文件中,这种文件也叫作类文件,在需要的时候,将整个文件载入进来即可! PHP在执行的时候,如果发现需要一个类(只要是和这个类相关的任何的操作),但此时当前脚本又没有这个类的定义代码,也没有手动加载这个类文件,那么,PHP会自动
阅读全文

浙公网安备 33010602011771号