php技巧

关于PHP5和PHP7中数组实现方式的比较总结

2021-09-01
目录 ⒈ 数据结构 ⒉ 添加/修改元素 ⒊ 删除元素 ⒋ 数组遍历 ⒌ hash 碰撞 ⒍ 扩容 ⒎ PHP 7 中的 packed hashtable 总结 从 PHP 5 到 PHP 7 ,PHP 通过对 hashtable 数据结构和实现方式的修改,使得数组在内存占用和性能上有了很大的提升. ⒈ 数据结构 // PHP 5 中 hashtable 的数据结构定义 typedef struct bucket { ulong h; /*对于索引数组,存储 key 的原始值:对于关联数组,存储

php中日期类型转换实例讲解

2021-09-01
1.使用date()函数将UNIX时间戳转换为日期. 2.使用strtotime()函数将日期转换为UNIX时间戳. 在PHP中是可以完成日期格式转换的,不过有一个缺点就是占用PHP解析器的解析时间,因此速度会相对慢一些.但是这种方式也有优点,那就是不管是不是数据库中查询获得的数据都可以进行转换,转换范围不受限制. 实例 $y=date("Y",time()); //年 $m=date("m",time()); //月 $d=date("d",t

php提取数字拼接数组的具体操作

2021-08-30
1.array_filter() 函数可以用回调函数来过滤数组中的元素,将数组元素传递给回调函数进行处理. 2.如果回调函数返回true,则把输入数组中的当前键值返回给结果数组. (数组键名保持不变) 实例 <?php $array = array("php", 11, '', 12, "我们",13,"green",2021,"mysql","14",15); function filter_num

PHP检查空值的方法总结

2021-08-29
1.使用empty(),检测变量是否为空 <?php $a = 'test'; $b = array('key1' => 'value1'); $class = new stdClass(); var_dump(empty($c)); // 输出 bool(true) var_dump(empty($b['key2'])); // 输出 bool(true) var_dump(empty($class)); // 输出 bool(false) var_dump(empty($class->

PHP如何删除关联数组中键值

2021-08-24
1.使用unset()函数可以用于取消设置关联数组中的键及其值. // 声明关联数组 $arr = array( "1" => "加", "2" => "减", "3" => "乘", "4" => "除" ); // 关联数组中删除键1及其值 unset($arr['1']); // 显示数组元素 var_dump($ar

PHP获取文件属性的最简单方法

2021-08-22
1.filesize($filename) 返回指定文件大小. 如果成功,会返回文件大小的字节数:如果失败,则返回 FALSE. <?php header("content-type:text/html;charset=utf-8"); $filename = "test.txt"; echo "{$filename} 文件的大小为:".filesize($filename); ?> 2.filetype($filename) 返回指

PHP中多字节字符串操作实例详解

2021-08-21
目录 前言 字符串操作 字符串正则操作 字符串编码转换 HTTP 参数操作 其它属性查看 总结 前言 什么是多字节的字符串操作呢?其实不少的同学可能都已经使用过了,但我们还是要从最基础的问题说起. 一个字符占几个字节并不是我们表面上看到的那样.正常情况下,一个数字或英文以及英文符号都是占用一个字节的.但是这个世界的语言文字何其之多,特别是像中文.日文这样的文字,往往用一个字节装不下,这时候就需要多字节来解决了(多字节一般第一个字节是前导字节表示当前是什么语言文字,后面的是正被的字节编码).比如说

php有序列表或数组中删除指定的值的实现代码

2021-08-21
实现:删除给定的值之后,得到一个新的有序列表,长度-1 代码: <?php /** * Created by PhpStorm. * User: wkk * Time: 2021/7/11 - 01:03 * Desc: <线性表> */ namespace php; class ListArray { // 从一个线性表中删除给定的值 public function deleteValue($list, $value) { // 记录是否找到 $flag = false; // 记录这

PHP中国际化的字符串排序和比较对象详解

2021-08-19
目录 前言 排序 比较 属性设置 排序信息 错误信息 排序规则强度 总结 前言 在 PHP 中,国际化的功能非常丰富,包括很多我们可能都不知道的东西其实都非常有用,比如说今天要介绍的这一系列的字符排序和比较的功能. 排序 正常来说,如果我们对数组中的字符进行排序,按照的是字符的 ASC2 表的顺序进行排列,如果是英文还好,但对于中文的话,排序出来的结果会是非常懵逼的. $arr = ['我','是','硬','核','项', '目', '经', '理']; sort($arr); var_dum

php之使用docker运行workerman案例讲解

2021-08-04
介绍 在docker上部署gatawayWorker项目,项目中使用到mysql,redis 安装 mysql 拉取镜像 docker pull mysql:5.7 运行容器 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name m_mysql mysql:5.7 -d 后台运行 -p 端口映射,前面是宿主机端口,后面是需要映射的容器端口 -e 设置环境变量,MYSQL_ROOT_PASSWORD是mysql的root用户的初

php中array_pad()函数用法及实例

2021-08-03
1.array_pad($array,$size,$value)函数可以将某个键值$value插入到数组$array中,从而将数组填补到指定的长度$size.($size参数可以理解为数组中元素的最终数目,即插入操作后的数组长度). 我们通过下面的例子来具体看看: <?php $arr=array(10,12,20); $result =array_pad($arr,5,1); var_dump($result); ?> 从array_pad($arr,5,1)可以看出,$size的值为5,则

php之深入理解架构布局讲解

2021-08-03
本文基于<PHP 内核剖析>与 <PHP7底层设计与源码实现>所记笔记. 对PHP内核的深入理解有助于我们对PHP的整体认识,对于业务层初期发展我们可以只了解基本语言的逻辑就可以写出符合业务的代码,但是随着业务的发展我们通过分析源码,编写扩展,深入了解PHP内部机制,帮助我们理解PHP内部实现逻辑,更好助力业务发展. 执行流程 从上图中看出主要从解析PHPCode到执行主要经过了四个阶段. 获取token可以通过Token_get_all('<?php echo "

PHP之修改php.ini文件上传大小的配置问题案例讲解

2021-08-01
php.ini php.ini文件保存了php的一些重要属性,例如现在要说的文件上传的一些限制条件,关于php.ini,有一篇很好的介绍:php.ini文件详解,在Windows系统中编写php的时候,我们一定见过这个画面(来源百度): 在这个网页我们就可以看到圈起来的部分标明了php.ini文件的位置,今天在Linux服务器上测试一个php文件的时候,结果打开页面是这样: 那么我们怎样获取php.ini的位置信息呢? 方法一是写个测试php页面使用phpinfo()函数输出一下,但是Linux

php将word转换为html格式代码分析

2021-07-25
PHP将上传word文件,转化为Html格式,(多种转换方式) 1.通过PHPOffice 1: composer require phpoffice/phpword /* 通过composer安装 PHPOffice 需要科学上网 或者用中国镜像:https://www.phpcomposer.com/ */ 2: 安装成功可看到 vendor文件夹 3: 使用方法 : require 'vendor/autoload.php'; $phpWord = \PhpOffice\PhpWord\I

如何解决php domdocument找不到的问题

2021-07-24
具体问题: php - 找不到 'DOMDocument'类 我在Magento应用程序的页面上发现错误:当我访问它时,它总是显示此消息错误: Fatal error: Class 'DOMDocument' not found in /home/.../lib/Zend/Feed/Abstract.php on line 95 能给一个解决方案吗?正在使用magento 1.4.1.1. 解决办法: 您需要安装DOM扩展.您可以使用以下命令在Debian/Ubuntu上执行此操作: sudo

php rename错误原因的查找方法

2021-07-21
打印出错误的原因. error_get_last()似乎没有返回任何内容.rename()返回true false,而不是异常. if (!rename($file->filepath, $full_path)) { $error = error_get_last(); watchdog('name', "Failed to move the uploaded file from %source to %dest", array('%source' => $file->

PHP八大设计模式案例详解

2021-07-20
PHP命名空间 可以更好地组织代码,与Java中的包类似. Test1.php <?php namespace Test1;//命名空间Test1 function test(){ echo __FILE__; } Test2.php <?php namespace Test2; //命名空间Test2 function test(){ echo __FILE__;//打印当前文件所在的绝对路径. } Test.php <?php require 'Test1.php'; require

PHP解决输出中文乱码问题讲解

2021-07-19
解决 PHP 输出中文乱码的问题 问题描述 今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL 数据库查询出来的数据中的中文都出现了乱码的情况. 下面记录一下我解决该问题的过程. 解决步骤 首先解决的是 PHP 程序直接输出 (输出的不是从数据库中查询的数据) 的中文乱码的问题. 由于我使用的是一台虚拟主机, 没有管理员权限, 无法修改 PHP 的配置文件, 因此,

php实现自运行的实例详解

2021-07-15
说明 1.创建一个PHP示例文件:然后输入"ignore_user_abort();". 2.通过"do{$fp = fopen('test.php','a')...}while(true)..."方法实现任务自动执行即可. 关于PHP代码如何自动执行,我们通常做定时任务需要做到代码自动执行,往往会借助系统来实现,例如linux的crontab或者windows的定时计划等等,现在分享一个纯代码实现的自动执行. 下面是用到的一窜PHP的执行代码,效率不是很好,但是能

php回溯算法计算组合总和的实例代码

2021-07-12
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. 说明 所有数字(包括目标数)都是正整数. 解集不能包含重复的组合. 实例 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]] 解题思路 直接参考回溯算法团灭排列/