php技巧

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]] 解题思路 直接参考回溯算法团灭排列/

PHP中信息格式化操作详解(MessageFormatter类)

2021-07-10
目录 前言 格式化 反格式化(根据规则获取参数数组) 设置获取规则 格式化完整示例 根据参数内容进行复数显示 选择条件规则 总结 前言 在国际化组件的学习过程中,我们已经接触过了 NumberFormatter 这种数字的格式化操作,它可以让我们将数字转换成标准格式.货币.本地语言等形式.今天我们来学习的是另一种专门用于信息格式化的类 MessageFormatter ,它主要是针对字符串的操作. MessageFormatter 也是遵循的 ICU 规范,底层是 C 中的 ICU 操作,所以和

php数据流中第K大元素的计算方法及代码分析

2021-07-10
设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 计算方法 1.直接使用最小堆,堆的大小为 k,这样保证空间占用最小,最小堆的根节点是就是最小值,也是我们想要的结果. 2.php的spl标准库是有最小堆这个库,直接在代码中继承SplMinHeap. 实例 class KthLargest extends SplMinHeap { /** * @param Integer $k * @param Integer[] $nums */ static

实例分析php常量和变量的不同

2021-07-07
说明 1.常量前没有美元符号: 2.常量只能用define()函数和const关键字定义,不能用赋值语句定义: 3.常量可以在任何地方定义和访问变量范围的规则: 4.一旦定义了常量,就不能重新定义或取消定义,直到脚本运行结束自动释放: 5.常量值只能是标量,可以是resource,但要避免,可能会出现问题. 实例 常量只能赋一次值,以下是申请常量的两种方法: const THE_VALUE="one"; define("THE_VALUE","one&qu

php计算汉明距离总和的实例讲解

2021-07-06
两个整数的汉明距离指的是这两个数字的二进制数对应位不同的数量. 计算一个数组中,任意两个数之间汉明距离的总和. 实例 输入: 4, 14, 2 输出: 6 解释:在二进制表示中,4表示为0100,14表示为1110,2表示为0010.(这样表示是为了体现后四位之间关系) 所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6. 注意: 数组中元素的范围为从 0到 1

php之性能优化案例

2021-07-06
php是一个很流行的脚本语言,现在很多公司(新浪.优酷.百度.搜狐.淘宝等等)在使用这种语言进行网站开发.我的这篇文章,我只是希望能够提高你的php脚本性能.请记住你的php脚本性能,很多时候依赖于你的php版本.你的web server环境和你的代码的复杂度. 优化你代码中的瓶颈 Hoare曾经说过"过早优化是一切不幸的根源".当你想要让你的网站更快运转的时候,你才应该去做优化的事情.当你要改变你代码之前,你需要做的事是什么原因引起了系统缓慢?你可以通过以下指导和其他方式优化你的ph

php安装grpc扩展的具体步骤

2021-07-03
1.在php.ini文件中添加grpc扩展配置:extension=grpc.so git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc cd grpc git submodule update --init make make install cd src/php/ext/grpc phpize ./configure --with-php-config=/usr/local/php/bin/p

php聚合式迭代器的基础知识点及实例代码

2021-07-03
说明 1.实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法. 2.聚合迭代器可以与许多迭代器结合,实现更高效的迭代. 实例 class MainIterator implements Iterator { private $var = array(); public function __construct($array) //构造函数, 初始化对象数组 { if (is_array($array)) { $this->var = $array; } } public f