PHP
PHP相关
扫地鼠Gordon
幽己一默胜笑人三声
展开
-
第六章 面向对象的PHP
还可以在一个类中包含多个 trait,方法是使用一个由逗号隔开的 trait 列表, 如 use , ;trait是一种代码重用方式,可以在多个类中实现同一种功能、我们不用一遍又一遍地编写相同的代码,而是可以将它定义为一个 trait ,再 “包含”到多个类定义中。如果需要进行功能修改,在一个地方就可以完成,也就是修改 trait 即可,这种修改会在所有 trait 使用之处生效。私有方法:只能在同一类定义的其它方法中使用,而不能在子类定义的方法中使用。原创 2023-06-28 21:56:46 · 570 阅读 · 0 评论 -
第七章 高级 OOP 特性
因为 Executive 类继承了 Employee 类中的方法,有人认为这个例子的输出应该是 Watching Polo。实际上不是,这是因为 self 关键字是在编译时确定它的作用范围的,不是在运行时、因此这个例子的输出总是 Watching Football。PHP 解决这个问题的方法是改变一下 static 关键字的用法, 用它来表示我们需要在运行时决定静态属性的作用域。在创建类层次结构时,有时候回遇到这种情况,即父类方法要使用静态类属性,但静态类属性可能在子类中被覆盖。原创 2023-06-28 22:48:01 · 392 阅读 · 0 评论 -
PHP中的ReflectionClass 类 怎么使用
PHP中的ReflectionClass 类 怎么使用。原创 2023-05-09 16:02:43 · 140 阅读 · 1 评论 -
layui菜单列表_PHP后端authtree 无限级权限控制树
感谢layui社区,及无限极权限控制树的作者。首先下载authtree.js,为了你能正确使用该模块,建议放在extends文件夹下(没有就创建一个),该文件夹与layui同级,为了方便你的使用,第三方组件都可放在里面配置该组件layui.config({ base: '域名/extends/',}).extend({ authtree: 'authtree',}...原创 2018-10-22 16:51:50 · 3484 阅读 · 2 评论 -
通过一个表格的形式来分析empty,is_null,isset的区别
而isset是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true;从上面表格可以看出,只要判断变量是否为""或者0,或者是false和null;//如果得不到变量a的值。//如果变量a的值是空。而is_null正好是isset的反结果。只要是这些值empty都会返回true;is_null 判断变量是否为NULL。isset判断变量是否已存在(配置)empty 判断变量是否为空。原创 2023-03-15 10:29:10 · 84 阅读 · 0 评论 -
适配器模式-学习
1.适配器模式,可以将截然不同的函数接口封装成统一的API2.实际应用举例,PHP的数据库操作有mysql,mysqli,pdo3种,可以用适配器模式统一成一致。类似的场景还有cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致.对象接口interface IDatabase{ public function connect($host...原创 2020-01-23 13:30:15 · 180 阅读 · 0 评论 -
PHP的3种基本设计模式-学习
1.工厂模式,使用一个工厂方法或者类来生成对象,而不是在代码中直接new2.单例模式,使某个类的对象只允许被创建一次3.注册模式,用来解决全局共享和交换对象理解:1.工厂模式应用场景,有A、B、C、D1、D2、Factory 6个类,A、B、C中都实例化了D1,通常写法是在A,B,C中都写一次new D1,现有业务需求用D2代替D1,则需要把A,B,C中的每个D1都修改成D2...原创 2020-01-22 14:11:42 · 221 阅读 · 0 评论 -
thinkphp 5有nginx 重写phpstudy8.1
修改配置文件vhosts.conflocation / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; }}配置文件server { listen 80; server_name 配置域名(...原创 2020-01-22 11:23:30 · 534 阅读 · 0 评论 -
PHP链式操作的实现-学习
定义一个类,如:DataBase实现原理:自定义可支持链式操作的方法需返回$thisclass DataBase{ public function where($where) { return $this; } public function order($order) { return $this; }...原创 2020-01-20 13:40:50 · 124 阅读 · 0 评论 -
PHP面向对象高级特性-学习SPL库的使用(PHP标准库)
1.SplStack、SplQueue、SplHeap、SplFixedArray等数据结构类2.ArrayIterator、AppendIterator、Countable、ArrayObject3.SPL提供的函数SplStack$stack = new SplStack();// 入栈$stack->push("data1".PHP_EOL);$stack-&g...原创 2020-01-20 13:30:23 · 306 阅读 · 0 评论 -
PHP标准库SplDoublyLinkedList双向链表类
常量:/* 常量 */const integer IT_MODE_LIFO = 2 ;// 迭代器模式后进先出(iterator mode Last In,First Out)const integer IT_MODE_FIFO = 0 ;// 迭代器模式先进先出(iterator mode First In,First Out)const integer IT_MODE_DELETE...原创 2020-01-18 13:07:18 · 177 阅读 · 0 评论 -
phpstudy切换PHP(nts)模式出现的No input file specified(已解决)
今天使用phpstudy切换到高版本时,报No input file specified看高版本都带有nts,就百度查找一番,结果还真是nts的问题,遂做个笔记解决方法:Thinkphp的public文件夹下的.htaccess,将RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]修改为在下面的内容,即可使用phpstudy的nts模式...原创 2020-01-14 11:27:39 · 2462 阅读 · 1 评论 -
PHP学习之路 PSR-0规范
1、PHP的命名空间必须与绝对路径一致2、类名的首字母必须大写3、除了入口文件之外,其他".php"必须只有一个类,不能有执行、可执行的代码开发符合PSR-0规范的基础框架1、全部使用命名空间2、所有PHP文件必须自动载入,不能有include/require3、单一入口(就是index.php)...原创 2020-01-12 10:14:03 · 139 阅读 · 0 评论 -
PHP类自动加载
关于编程字体选择,常见的等宽编程字体有:Courier New,Consolas.推荐使用:Source Code Pro,该字体是Adobe公司专门为程序员设计的,免费开源(PHP5.3后已废弃)先了解这个函数(魔术方法)__autoload();__autoload()— 尝试加载未定义的类function __autoload($class){ requir...原创 2020-01-11 22:16:32 · 148 阅读 · 0 评论 -
验证码实例
原创 2018-08-10 22:12:35 · 112 阅读 · 0 评论 -
关于数组的练习题
<?php// 已知$input = [ ['value_id'=>1, 'value_name'=>'红', 'prop'=>['prop_id'=>1, 'prop_name'=>'颜色']], ['value_id'=>2, 'value_name'=>'黄', 'prop'=>['prop_id'=>1,...转载 2019-02-28 10:54:39 · 525 阅读 · 0 评论 -
no input file specified 问题的解决
(一)IIS Noinput file specified方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS方法二:请修改php.ini找到; cgi.force_redirect = 1去掉前面分号,把后面的1改为0即cgi.force_redirect = 0 (二)apacheNo input file specifieda...转载 2019-02-27 08:48:24 · 575 阅读 · 0 评论 -
PHP下载图片的方法
1.PHP提供图片下载方法download.php代码<?php//获取要下载的文件名$filename=$_GET['filename'];//设置头信息header('Content-Disposition:attachment;filename='.basename($filename));header('Content-Length:'.filesi...转载 2019-04-14 16:01:21 · 2219 阅读 · 0 评论 -
PHP常用正则表达式汇总
平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:"^\d+$" //非负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //非正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?\d+$" //整数"^\d+(\.\d+)?$" //非负浮点数...转载 2019-04-24 11:22:50 · 151 阅读 · 0 评论 -
php xml与数组的转换函数
function arrayToXml($arr) { $xml = "<xml>"; foreach ($arr as $key=>$val) { if (is_numeric($val)){ $xml.="<".$key.">".$val."</...原创 2019-06-06 11:13:51 · 99 阅读 · 0 评论 -
PHP将Base64图片转换为本地图片并保存
/** * [将Base64图片转换为本地图片并保存] * @E-mial wuliqiang_aa@163.com * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [Base64] $base64_image_content [要保存的Base64] *...转载 2019-06-07 12:05:07 · 2072 阅读 · 0 评论 -
利用PHPExcel读取Excel的数据和导出数据到Excel
PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。PHPExcel使用教程:首先下载PHPExce...转载 2019-06-02 19:32:19 · 110 阅读 · 0 评论 -
php文本转图片自动换行功能
<?phpheader ("Content-type: image/png");mb_internal_encoding("UTF-8"); // 设置编码function autowrap($fontsize, $angle, $fontface, $string, $width) {// 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度 $content...转载 2019-06-08 16:48:39 · 1648 阅读 · 5 评论 -
PHP mkdir 0777权限问题
在linux系统中,即使我们使用root帐号去手工执行php命令mkdir('test', 0777);结果文件的权限依然为: 1 drwxr-xr-x 2 root root 4096 Jun 17 11:28test 很明显这个权限是 755为什么会这样呢?在linux系统中在创建文件/文件夹时有一个默认权限,此权限受 uma...转载 2019-06-09 19:28:34 · 1195 阅读 · 1 评论 -
生成二维码图片,并保存至服务器指定文件夹
引用phpqrcode.php类,该类放在vender中使用vender("文件夹名.类名"),代码中的$this->path是根目录下的所在文件,如初始化时定义:$this->path = 'upload/'生成的图片就在根目录的upload目录下 /** 二维码制作 *****************************/ /** * ...原创 2019-06-25 17:20:22 · 3834 阅读 · 0 评论 -
PHP中的$_SERVER
服务器和执行环境信息‘SCRIPT_FILENAME’如果当前脚本引入了其他文件,其他文件中的$SERVER['SCRIPT_FILENAME'],返回的是当前执行脚本的绝对路径。$SERVER['SCRIPT_FILENAME'];//当前执行脚本的绝对路径 ...原创 2019-02-23 15:30:14 · 238 阅读 · 0 评论 -
PHP的目录分隔符常量DIRECTORY_SEPARATOR
在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,在linux上路径的分隔符是/,于是就要引入这个php内置变量了:DIRECTORY_SEPARATOR回到问题本身上,DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回\,而在linux或者类unix上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存...原创 2019-02-23 13:05:19 · 2203 阅读 · 0 评论 -
获取分配给php的内存使用量
echo round(memory_get_usage() / 1024 / 1024, 2) . ' MB' . PHP_EOL . '<br />';echo memory_get_usage() . ' byte'. PHP_EOL;exit;原创 2018-08-23 10:08:03 · 874 阅读 · 0 评论 -
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
转:PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法一、数字补0.如果要自动生成学号,自动生成某某编号,就像这样的形式“d0000009”、“d0000027”时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个功能。方法一:先构造一个数字10000000,千万,也就是一个1,7个0,然后加上当前的编号(比如是3),那么就得到 100...转载 2018-08-16 11:28:28 · 651 阅读 · 0 评论 -
关于windows下,PHP创建目录、文档名时中文乱码问题
问题在windows下,PHP调用mkdir()、file_put_contents()、fopen()函数创建带有中文的目录或文档名时,出现乱码。原因经过查阅资料,这跟系统字符集有关系。windows(简体中文),默认字符集是:gbk windows(繁体中文),默认字符集是:big5 linux,默认字符集是:utf-8解决使用iconv或mb_convert_...转载 2018-08-16 09:54:20 · 528 阅读 · 0 评论 -
PHP中比较两个字符串找出第一个不同字符位置
转:PHP中比较两个字符串找出第一个不同字符位置例子描述:来自stackoverflow上的问题,给出两个长度相等的字符串,找出这两个字符串中第一个不同的字符位置。一般的做法就会这样:<?phpfor ($offset = 0; $offset < $length; ++$offset) { if ($str1[$offset] !== $str2[$offse...转载 2018-08-16 09:32:52 · 1172 阅读 · 0 评论 -
方法:PHP、JQ、JS 获取两个日期之间所有日期
phppublic function getDatesBetweenTwoDays($startDate,$endDate){ $dates = []; if(strtotime($startDate)>strtotime($endDate)){ //如果开始日期大于结束日期,直接return 防止下面的循环出现死循环 ...转载 2018-08-18 10:14:29 · 402 阅读 · 0 评论 -
php强制转换中(array)和(object)妙用,关联数组与对象快速转换
(array)class Pre1{ private $name = 'aaa' ; private $age = 100;}class Pre2 extends Pre1{ private $name= 'bbb' ; public $age= 111;}var_dump ((array) new Pre2 ());得到结...原创 2018-08-04 22:20:15 · 3730 阅读 · 0 评论 -
php二维数组按某个字段(键)排序和自然排序
二维数组自然排序 /** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return a...原创 2018-07-20 10:57:55 · 1434 阅读 · 0 评论 -
PHP正则表达式
转一、校验数字的表达式 1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\...转载 2018-07-20 10:21:05 · 119 阅读 · 0 评论 -
常用运算符优先级
开关:&&前面为true则开,||前面为false则开&&(与)||(或)!(非)原创 2018-06-20 22:43:19 · 840 阅读 · 0 评论 -
方法:js 将Date 日期对象与时间戳互相转换
转数据库时间戳转具体时间FROM_UNIXTIME(t.stamp, "%Y-%m-%d %H:%i:%s") stamp将Date对象转换成时间戳第一种方法,使用Number()方法var newDay = new Date();console.log(Number(newDay));返回当前的时间的时间戳第二种方法是,使用日期对象Date.parse()...转载 2018-07-23 09:05:06 · 2279 阅读 · 0 评论 -
tp5同一字段的多个模糊条件查询
public function test(){ $map['r_name'] = [['like', '普通%'], ['like', '牛逼%'], ['like', '可爱%'], 'or']; $list = Db::table("tp_role") ->fetchSql(true) ->where($map) ...原创 2018-10-26 16:07:53 · 3799 阅读 · 0 评论 -
ThinkPHP5自定义命令行(服务器计划任务)
创建自定义命令行第一步,配置command.php文件,目录在application/command.php<?phpreturn [ 'app\home\command\Test',];第二步,建立命令类文件,新建application/home/command/Test.php<?phpnamespace app\home\command;us...原创 2019-02-22 18:03:20 · 1780 阅读 · 0 评论 -
PHP文件操作相关函数
dirname()返回路径中的目录部分如:echo $_SERVER['SCRIPT_FILENAME'].'<br>';//F:/WWW/tp5.0.24/public/index.phpecho dirname($_SERVER['SCRIPT_FILENAME']).'<br>';//F:/WWW/tp5.0.24/publicrealpath()...原创 2019-02-17 14:22:21 · 249 阅读 · 0 评论