php技巧

PHPUnit 单元测试安装与使用入门教程

2020-04-20
本文实例讲述了PHPUnit 单元测试安装与使用.分享给大家供大家参考,具体如下: 一.官网下载对应 PHP 版本的代码库 https://phpunit.de/getting-started-with-phpunit.html 二.安装 PHPUnit 官网提供了两种方法安装 1. PHP Archive (PHAR) ➜ wget -O phpunit https://phar.phpunit.de/phpunit-8.phar ➜ chmod +x phpunit ➜ ./phpunit

PHP 实现 WebSocket 协议原理与应用详解

2020-04-20
本文实例讲述了PHP 实现 WebSocket 协议原理与应用.分享给大家供大家参考,具体如下: 下面会讲解一下什么是 WebSocket,以及使用 PHP 实现 WebSocket. WebSocket 是什么? PHP 实例 应用场景 一.WebSocket 是什么 WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据. 在 WebSocke

php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析

2020-04-19
本文实例讲述了php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法.分享给大家供大家参考,具体如下: php函数function_exists (),method_exists() 与is_callable()的区别在哪? 先来讲下后两个:method_exists() 与is_callable(): 在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有 metho

PHP实现随机发扑克牌

2020-04-19
本文实例为大家分享了PHP实现随机发扑克牌的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <!-- 随机发扑克牌 --> <head> <meta charset="UTF-8"> <title>随机发牌</title> <style> div{margin:15px 0} font{border:1px solid #ccc;padding:6px 3p

PHP使用PDO 连接与连接管理操作实例分析

2020-04-19
本文实例讲述了PHP使用PDO 连接与连接管理操作.分享给大家供大家参考,具体如下: 连接是通过创建 PDO 基类的实例而建立的.不管使用哪种驱动程序,都是用 PDO 类名. 构造函数接收用于指定数据库源(所谓的 DSN)以及可能还包括用户名和密码(如果有的话)的参数. 连接到 MySQL <?php $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?> 如果有任何连接错误,将抛出一个 PDOException

PHP 命名空间原理与用法详解

2020-04-19
本文实例讲述了PHP 命名空间原理与用法.分享给大家供大家参考,具体如下: 命名空间适用于 (PHP 5 >= 5.3.0, PHP 7) 使用命名空间基础 PHP 命名空间类似于文件系统, 在文件系统中访问一个文件有三种方式: 相对文件名形式如foo.txt.它会被解析为 currentdirectory/foo.txt,其中 currentdirectory 表示当前目录.因此如果当前目录是 /home/foo,则该文件名被解析为/home/foo/foo.txt. 相对路径名形式如subd

PHP 自动加载类原理与用法实例分析

2020-04-13
本文实例讲述了PHP 自动加载类原理与用法.分享给大家供大家参考,具体如下: 类的自动加载 (Autoloading Classes) 在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件. 这会带来一个烦恼:每个脚本的开头,都需要包含(include)一个长长的列表(每个类都有个文件). 在 PHP 5 中,已经不再需要这样了. spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)

php回调函数处理数组操作示例

2020-04-13
本文实例讲述了php回调函数处理数组操作.分享给大家供大家参考,具体如下: array_reduce- 用回调函数迭代地将数组简化为单一的值 mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) callback[mixed callback ( mixed $carry , mixed $item ) carry--携带上次迭代里的值: 如果本次迭代是第一次,那么这个值是 init

PHPExcel实现的读取多工作表操作示例

2020-04-12
本文实例讲述了PHPExcel实现的读取多工作表操作.分享给大家供大家参考,具体如下: 最近我们公司crm模块需要优化一下客户导入功能,之前的要求是:只需要从单个工作表中获取数据:现在的要求是:需要在多个工作表中获取对应数据,并导入数据库; 幸亏PHPExcel已经给我们提供了获取多个sheet工作表的方法.下面直接上代码:[这里我用的是tp3.2.3] /** * 导入excel文件 * @param string $file excel文件路径 * @return array excel文件

php操作redis常见方法示例【key与value操作】

2020-04-11
本文实例讲述了php操作redis常见方法.分享给大家供大家参考,具体如下: 关于key的操作: 1.获取所有key,不包括值: $redis ->keys("*"); 2.获取一个或多个key的值,[不限制数据类型]: $redis ->mget([$key1,$key2]);//参数为数组: 3.设置指定key的生命周期: $redis ->expire($key,30);//设置生命周期为30秒: 4.获取指定key的剩余生命周期: $redis->tTl

4种Windows系统下Laravel框架的开发环境安装及部署方法详解

2020-04-06
1.准备工作 1.1PHP集成环境 这里我们使用的是XAMPP,XAMPP是一个功能强大的建站集成软件包,采用一键安装的方式,包含PHP7.0.Mysql.Tomcat等.最新版下载地址:PHP 5.6.28版(32位)|PHP 7.0.13版(32位)这两个版本的XAMPP都不再支持WindowsXP操作系统,这意味着你需要更高版本的Windows操作系统. 注意:由于Laravel5.1要求PHP 5.5.9+(含)版本,所以要针对该PHP版本要求选择合适的XAMPP. 1.2安装Compo

Laravel5.3+框架定义API路径取消CSRF保护方法详解

2020-04-05
从Laravel 5.3+开始,API路径被放入了routes/api.php中.我们绝大多数的路径其实都会在web.php中定义,因为在web.php中定义的路径默认有CSRF保护,而API路径默认没有CSRF保护.在Laravel官网文档中写到:/p> Any HTML forms pointing to POST, PUT, or DELETE routes that are defined in the web routes file should include a CSRF toke

PHP正则之正向预查与反向预查讲解与实例

2020-04-05
了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all . preg_replace 正向预查&反向预查 正向或反向预查都是非获取匹配,不进行存储供以后使用. 1.正向预查 (?:pattern) 匹配结果 (?=pattern) 正向匹配 (?!pattern) 正向不匹配 2.反向预查 (?<=pattern) 反向匹配. (?<!pattern) 反向不匹配. 什么叫非获取匹配(非捕获匹配),请看例子 一:PHP正则正向预查实例 PHP获取匹配

Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解

2020-04-05
注意:文章标题中5.2+表示该文章内容可向上兼容,适用于Laravel版本5.2及更高(目前最新为5.6),但不可向下兼容,即不适用于5.2版本以下.推荐大家花一点点时间,将自己的Laravel更新至5.6版本. 在后台开发时,我们经常需要获取用户之前操作页面的地址并生成一个返回之前页面的链接. 而Laravel从版本5.2+开始,便提供了一系列全局帮助函数(Helper Functions)来简化我们的工作: https://laravel.com/docs/5.2/helpers#metho

Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解

2020-04-05
从Laravel 5.5+开始,加入了API Resources这个概念. 我们先来看一下官网如何定义这个概念的: When building an API, you may need a transformation layer that sits between your Eloquent models and the JSON responses that are actually returned to your application's users. Laravel's resour

Laravel 5+ .env环境配置文件详解

2020-04-04
在我们开发的时候,有时候我们希望不同的环境中有不同的配置参数,举例来说,你希望生产环境使用的缓存机制与本地环境不同. 要实现这个目的,Laravel使用了DotEnv这个PHP库.在Laraval的安装根目录下,我们会看到一个名为.env.example的文件,我们需要手动将其命名为.env(或拷贝一个副本并将其命名为.env). 打开.env文件,可以看到一系列配置信息: APP_NAME=Laravel         APP_ENV=local         APP_KEY=base64

解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]

2020-04-04
Laravel5.x运行迁移命令创建数据表:php artisan migrate报错. Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_uniqu

Laravel框架数据库迁移操作实例详解

2020-04-04
很多人可能在学习Laravel框架的时候,对Laravel的数据库迁移(以下简称Migrations)存在着疑惑: 1. 什么是 Migrations? 2. 为什么要用 Migrations? 3. Migrations 到底方便在哪里? 好了,抱着这些问题,我们今天就一起来学习Migrations. 什么是 Migrations? 我们先来看一下Laravel官方文档怎么写的: Migrations are like version control for your database, al

使用git迁移Laravel项目至新开发环境的步骤详解

2020-04-04
对于如何创建一个Laravel项目,相信对新接触Laravel的朋友并不存在太多的问题,但是今天我们要来看一下如何将已有的Laravel项目迁移(复制)到新的开发环境. 我们需要用到的工具是git,如果你不知道git是什么,这里有一个传送门,看完之后再回来: http://github.com 简单说来,git就是Github开发的VCS(Version Control System),即版本控制系统.如果你使用过SVN,那么你应该很清楚版本控制是什么. 本文的示例环境是Ubuntu 16.04

Laravel实现批量更新多条数据

2020-04-03
前言 近期在刷新生产环境数据库的时候,需要更新表中的字段,如果对每条数据结果都执行一次update语句,占用的数据库资源就会很多,而且速度慢. 因为项目是Laravel框架,Laravel有批量插入的方法,却没有批量更新的方法,没办法只能自己实现. 准备 mysql case-when的用法 MySQL 的 case when 的语法有两种: 简单函数 CASE [col_name] WHEN [value1] THEN [result1]-ELSE [default] END CASE [co