![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP教程
文章平均质量分 83
chinaherolts2008
这个作者很懒,什么都没留下…
展开
-
php输出二维数组
数组在php中是和个数据类型,它是一个特殊的类型可以存放不同的数据,包括在php中可用的大部份,下面我们想办法把二维数组中的数据输出来.二维数组访问例1代码如下://建立数组 $arr=array("key"=>array("key2"=>"value")); //访问二维数组“key2”元素 echo$arr["key"]["key2"];例2代码如下://建立数组 $arr=array(array("key2"=>"...转载 2022-04-29 08:47:42 · 1268 阅读 · 0 评论 -
关于ThinkPHP5.1在连接到MySQL数据库时的一些问题
很多时候,我们连接不到数据库的原因,就是因为数据库的用户名和密码配置不正确可以选择项目中的config→database.php文件进行配置如果上述方法无效,那请检查MySQL数据库的版本MySQL8.0后的高版本数据库所使用的密码是caching_sha2_password加密,先前版本是mysql_native_password加密因此,解决的方式有以下几种1、通过Navicate修改加密方式我们打开Navicate,选择 用户 菜单栏,选择 root 用户,双击打开...转载 2021-08-17 22:03:33 · 728 阅读 · 0 评论 -
CentOs7+Apache配置https站点
一、申请SSL证书在域名注册商中都有免费的SSL证书申请以腾讯云为例,可以申请免费证书:二、下载证书证书文件包下载后解压得到:三、上传Apache文件夹中的文件使用WinSCP将以下三个文件拷贝到 Apache 服务器的 /etc/httpd/ssl目录下。1_root_bundle.crt证书文件 2_你的域名.crt证书文件 3_你的域名.key私钥文件如果不存在该文件夹可以使用 mkdir /etc/httpd...转载 2021-08-17 22:00:20 · 428 阅读 · 0 评论 -
学习PHP中有趣的字符集国际化验证功能
今天的内容非常简单,不过也很有趣。不知道大家有没有经历过这样的事情,就是在某些字体下,0 和 O 不好区分,1 和 l 也是很难看清楚。当然,现在大部分的编辑器和 IDE 的默认字体都是会选择那些比较好区分这些相似字符的,比如给 0 中间加上个斜杠或者一个点之类的。在 PHP 中也有这样的函数能够帮助我们来检查是否有这样的不好区分的字符存在。类似字符检测$checker = new Spoofchecker();var_dump($checker->areConfusable('goog转载 2021-08-17 10:25:29 · 97 阅读 · 0 评论 -
简单入门PHP中的多字节字符串操作
什么是多字节的字符串操作呢?其实不少的同学可能都已经使用过了,但我们还是要从最基础的问题说起。一个字符占几个字节并不是我们表面上看到的那样。正常情况下,一个数字或英文以及英文符号都是占用一个字节的。但是这个世界的语言文字何其之多,特别是像中文、日文这样的文字,往往用一个字节装不下,这时候就需要多字节来解决了(多字节一般第一个字节是前导字节表示当前是什么语言文字,后面的是正被的字节编码)。比如说一个中文字在 GBK 环境是占用两个字节,而在 UTF-8 下则是占用三个字节。而在最近几年,由于 emoji转载 2021-08-17 09:34:23 · 143 阅读 · 0 评论 -
学习PHP中的高精度计时器HRTime扩展
不知道大家还记得在学校的时候体育测试时老师带的秒表吗?当枪声想起时,我们开始跑步,这时秒表启动,当我们跑过终点后,老师会按下按扭记录我们的成绩,这就是一个典型的定时器的应用。今天我们要学习的内容其实就是和这个体育测验的秒表类似的一个功能扩展,它就是 PHP 的 HRTime 扩展。时钟节拍首先我们要了解一下什么叫做系统的时钟节拍。当 Linux 系统启动之后,会同时启动一个时钟节拍器,以纳秒为单位进行计时,而我们的 HRTime 扩展的真实名称是 高精度时间 扩展。也就是说,它正是基于操作系统的时钟转载 2021-08-11 23:02:35 · 151 阅读 · 0 评论 -
PHP中DirectIO直操作文件扩展的使用
关于 PHP 的文件操作,我们也将是通过一系列的文章来进行学习。今天我们先学习的是一个很少人使用过,甚至很多人根本不知道的扩展,它与我们日常的文件操作有些许的不同。不过这些差别并不是我们肉眼所能直观看到的,主要还是在于业务的需求与性能的平衡。什么是Direct IODirect IO 其实是 Linux 操作系统中的一个概念。它的意思是直接操作文件流,为什么说是直接呢?其实在我们的操作系统进行文件操作的时候,并不是马上直接就在磁盘上进行文件的读写,中间还有一层页缓存。既然是缓存,那么它当然是会带来一转载 2021-08-11 21:27:07 · 106 阅读 · 0 评论 -
学习PHP中Fileinfo扩展的使用
今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?因为 Laravel 框架在安装的时候它就是必须的一个扩展,没有打开它的话,连 Laravel 框架都是无法使用的。Fileinfo 介绍Fileinfo 是通过给定的 magic 字节序列库来获得文件的内容类型及编码。它所获取的序列库是根据操作系统来定的,比如在 Linux 系统中默认使用的就是 /usr/share/misc/magic 这个文件。其实我们就是可以用这个扩展的函数来获得文件的 MIME 信息,就像我们常见的 imag转载 2021-08-11 19:01:07 · 184 阅读 · 0 评论 -
PHP中一个好玩的性别判断扩展
今天我们来学习的一个扩展同时它也是非常小众的一个扩展,其实说白了,或许是根本没什么人用过得扩展。当然,我们也只是出于学习的目的来看看这个扩展到底是什么东西,有什么好玩的地方。扩展说明Gender 扩展从名称就可以看出,它是一个关于性别的扩展,这个扩展可以根据传递给它的用户姓名以及用户所在的地区国度来返回性别情况,是不是非常有意思。这个扩展直接在 PECL 网站进行下载安装即可,没有什么别的特殊的要求。Gender 扩展是根据 Joerg Michael 这位大神所写得 gender.c 这个函数转载 2021-08-11 18:58:02 · 144 阅读 · 0 评论 -
学习PHP中的iconv扩展相关函数
想必 iconv 这个扩展的相关函数大家多少都接触过,做为 PHP 的默认扩展它已经存在了很久,也是我们在操作字符编码时经常会使用的函数。不过除了 iconv() 这个函数外,你还知道它的其它函数吗?今天,我们就来学习一下 iconv 扩展中的各种好玩的函数。iconv 设置及获取信息首先,就是我们可以设置 iconv 扩展中默认定义的输出和输出字符编码格式。iconv_set_encoding("internal_encoding", "UTF-8");// Deprecated: ico转载 2021-08-11 18:54:36 · 192 阅读 · 0 评论 -
PHP中国际化的字符串比较对象
在 PHP 中,国际化的功能非常丰富,包括很多我们可能都不知道的东西其实都非常有用,比如说今天要介绍的这一系列的字符排序和比较的功能。排序正常来说,如果我们对数组中的字符进行排序,按照的是字符的 ASC2 表的顺序进行排列,如果是英文还好,但对于中文的话,排序出来的结果会是非常懵逼的。$arr = ['我','是','硬','核','项', '目', '经', '理'];sort($arr);var_dump( $arr );// array(8) {// [0]=>/转载 2021-08-11 12:09:10 · 64 阅读 · 0 评论 -
PHP设计模式--原型模式
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式形象来说应该叫克隆模式,它主要是将对象克隆,把被克隆的对象称之为最初的原型。使用场景:用于创建重复的对象,这种类型的设计模式属于创建型模式。优点:1、可以改变值以指定新对象2、可以改变结构以指定新对象3、减少子类的构造4、用类动态配置应用这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓转载 2021-08-11 10:25:15 · 145 阅读 · 0 评论 -
学习PHP中国际化地数字格式处理
不知道大家有没有了解过,对于数字格式来说,西方国家会以三位为一个进位,使用逗号来分隔。比如,12345678,用标准的格式来表示的话就是 12,345,678 。不过我们中文其实并不会有这样的分隔符,另外像某些地区则是以空格为分隔的,这个我们马上通过代码就可以看到。其实在之前的文章中我们就已经接触过一点这方面的知识,今天就来详细的学习一遍。至于为什么要格式化数字、货币这些内容呢?我们将在文章讲解中逐一说明。数字标准格式首先还是看我们开头介绍的标准数字格式。$localeArr = ['en_U转载 2021-08-11 09:54:06 · 140 阅读 · 0 评论 -
【PHP数据结构】在学数据结构和算法的时候我们究竟学的是啥?
一说到数据结构与算法,大家都会避之不及。这本来是一门专业基础课,但是大部分人都并没有学好,更不用说我这种半路出家的码农了。说实话,还是很羡慕科班出身的程序员,因为你们在日常工作或者面试中,只需要复习一下就好了,而我则是完全的从头开始学。不过,还好一切都不晚,在这里,我们就用 PHP 作为示例代码,来和大家一起真正的从头学一遍恐怖的数据结构与算法。数据结构什么是数据结构呢?数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系这是严蔚敏老师在《数据结构》第二版中对数据结构的转载 2021-08-08 22:33:44 · 108 阅读 · 0 评论 -
【PHP数据结构】线性表?顺序表?链表?别再傻傻分不清楚
遵从所有教材以及各类数据结构相关的书书籍,我们先从线性表开始入门。今天这篇文章更偏概念,是关于有线性表的一个知识点的汇总。上文说过,物理结构是用于确定数据以何种方式存储的。其他的数据结构(树、图)、算法等基本都是建立在这样一个物理结构之上的,也可以说,物理结构就是数据结构的根本。在这里,我们先介绍两个物理结构,也是我们将来学习数据结构的基石,它们就是顺序表和链表。顺序表不扯复杂的定义,不扯什么数学表达式,我们最直观的理解,顺序表就是数组。是不是非常简单,没错,在 PHP 或者 C 的世界中,转载 2021-08-08 22:24:34 · 103 阅读 · 0 评论 -
RageFrame学习笔记:创建路由+导入layui
话不多说,直接开始,在上一章中,我们已经把项目实例化到本地了(查看点击这里),但是我发现,用户名和密码是随机出来了,难记,这里给大家先分享如何修改默认用户名和密码1.我们先登录到后台,点击用户名的下标栏,到这里修改密码。2.密码修改完成后,打开项目数据库,打开rf_backend_member表格,修改这里的用户名后点击保存即可(真*物理修改)项目实例化后,我们看下大致的目录结构按照YII2官方文档的指示,会自带一个路由,modes生成器,我们直接网站后加/gii但如果.转载 2021-08-08 22:19:52 · 506 阅读 · 0 评论 -
【PHP数据结构】链表的相关逻辑操作
链表的操作相对顺序表(数组)来说就复杂了许多。因为 PHP 确实已经为我们解决了很多数组操作上的问题,所以我们可以很方便的操作数组,也就不用为数组定义很多的逻辑操作。比如在 C 中,数组是有长度限制的,而在 PHP 中我们就不会考虑这个问题。如果是使用 C 的话,这个长度限制就是数组结构的一大劣势,而链表,不管是在 C 还是在 PHP 中,都不会受到长度问题的限制。能够限制链表的只有内存的大小。另外,链表的链式结构也能够为我们带来一种全新的不同于数组操作的体验,对某些功能算法来说,链表也更有优势。话不多转载 2021-08-08 22:18:12 · 104 阅读 · 0 评论 -
【PHP数据结构】链表的其它形式
在上篇文章中,我们已经说过了链表除了简单的那一种单向链表外,还有其它的几种形式。当然,这也是链表这种结构的一大特点,非常地灵活和方便。我们简单的想一想,如果让最后一个节点的 next 指回第一个节点,那么这就样就形成了一个环,这就是一个循环链表了。如果我们在每个节点上增加一个指向上一个节点的 prev 属性,那么这个链表就变成了一个双向链表了。如果我们在双向链表的基础上也让最后一个节点的 next 指向第一个节点,同时让第一个节点的 prev 指向最后一个节点,这不就是一个双向循环链表了嘛。下面我们就来具体转载 2021-08-08 21:41:23 · 97 阅读 · 0 评论 -
【PHP数据结构】图的应用:最短路径
上篇文章的最小生成树有没有意犹未尽的感觉呀?不知道大家掌握得怎么样,是不是搞清楚了普里姆和克鲁斯卡尔这两种算法的原理了呢?面试的时候如果你写不出,至少得说出个大概来吧,当然,如果你是要考研的学生,那就要深入的理解并且记住整个算法的代码了。什么是最短路径今天我们学习的是图的应用中另外一个经典的问题,也就是 最短路径 的问题。这个问题和最小生成树是不同的,最小生成树的要求是要连通所有的结点,并且走得是权值最小的那条路线。而最短路径则是指的从某个顶点到另一个顶点中权值最小的那条路径。这条路径不一定是包含在转载 2021-08-08 15:58:30 · 152 阅读 · 0 评论 -
【PHP数据结构】线性查找与二分查找
欢迎来到查找的世界,在学习完各种数据结构之后,总算走到了这一步,不知道大家有什么感想呢?反正我是边学边忘,现在让我去说说图的那几个算法还是在蒙圈的状态中。不过学习嘛,就是一步一步的来,暂时搞不懂的东西其实也是可以放一放的。打破砂锅和坚持不懈当然是好的品德,但有些东西可能真的是需要时间去消化的,甚至可能是需要真实的项目经历才能彻底搞明白。在我们编程行业来说就是典型的这种实践的学习形式效果会更好,很多人在上大学的时候对于数据结构以及其它专业课都是以死记硬背为主,包括上了多少年班的同学可能都没有在业务代码中真正的转载 2021-08-08 15:10:20 · 127 阅读 · 0 评论 -
php接口(api)
对于php的入学者来说,很少接触api,因此对于如何写不知所措,其实开发API 比开发WEB 更简洁,但可能逻辑更复杂,因为API 其实就是数据输出,不用呈现页面,所以也就不存在MVC(API 只有M 和C),和WEB 开发一样,首先需要一些相关的参数,这些参数,都会由客户端传过来,也许是GET也许是POST,这个需要开发团队相互之间约定好,或者制定统一规范。 1. 我们写接口就要有一个相应的格式 我写接口喜欢使用 status,msg,result 这三个返回。status...转载 2021-08-08 11:08:41 · 3579 阅读 · 0 评论 -
三步实现低代码框架之二 - 100 行代码实现原型
继续标题党哈。老习惯,自己吹过的牛就算含着泪也要实现,自从上次初步分析过 三步实现PHP低代码框架 后,其实这两个月也在团队内小范围试用一些产品,主要试用对象是 Erupt,基于 Java Spring Boot 构建的一款框架,从开发效率上看还是效果很明显的。低代码的低,强调的是要大幅减少代码,从这个角度对比市面上一些商业化产品来看,Erupt 还有很大提升空间,尤其没有整合工作流引擎,但是相比于市面上另外一派主打代码生成器的产品来说,体验已经好了太多太多。而且非常佩服作者的产品性思维能力,整合的东西扩.转载 2021-08-08 09:34:52 · 747 阅读 · 0 评论 -
Python简介
Python是什么?Python 是一种解释型语言:这意味着没有了编译这个环节,可跨平台。 Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 Python 是初学者的语言:Python语言对初级程序员来说,支持的应用范围广,代码精简,从简单的文字处理,到服务端,再到游戏。Python 发展历史 Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。 P..转载 2021-08-07 23:07:48 · 98 阅读 · 0 评论 -
【PHP数据结构】其它排序:简单选择、桶排序
这是我们算法正式文章系列的最后一篇文章了,关于排序的知识我们学习了很多,包括常见的冒泡和快排,也学习过了不太常见的简单插入和希尔排序。既然今天这是最后一篇文章,也是排序相关的最后一篇,那我们就来轻松一些,再来学习两个非常简单的排序算法。简单选择排序首先是简单选择排序,它划分在了选择类排序下面,不过其实也可以看成是交换类的排序。因为它的核心代码中也是有交换操作的实现的。关于这个排序没有什么太多好说的,每次在遍历中找出最大或者最小的数据,然后将它放到相应的位置就可以了。我们先来看代码,然后再看图示的解析转载 2021-08-07 21:12:27 · 85 阅读 · 0 评论 -
【PHP数据结构】PHP数据结构及算法总结
断断续续地把这个系列写完了,就像上一个设计模式一样,算法这个系列也是前前后后写了将近有一年的时间。当然,都是在业余或者晚上的时间写完的,所以进度如此地慢。更主要的是,既然要写,总得要自己先弄懂吧,对于一个没上过高中的人来说,这还真的是有点困难。所以说,在这一系列的文章中,可能有许多纰漏甚至是错误,这个也欢迎大家随时指正。继续扩展提高关于数据结构与算法这门课程,在我的系列文章中,只是简单的入了个门。仅仅从教材来说,就还有许多内容并没有涉及,实在是本人水平有限,大家可以自己再继续深入地学习。转载 2021-08-07 14:44:54 · 90 阅读 · 0 评论 -
【PHP数据结构】散列表查找
上篇文章的查找是不是有意犹未尽的感觉呢?因为我们是真真正正地接触到了时间复杂度的优化。从线性查找的 O(n) 直接优化到了折半查找的 O(logN) ,绝对是一个质的飞跃。但是,我们的折半查找最核心的一个要求是什么呢?那就是必须是原始数据是要有序的。这可是个麻烦事啊,毕竟如果数据量很庞大的话,排序又会变得很麻烦。不过别着急,今天我们要学习的散列表查找又是另一种形式的查找,它能做到什么程度呢?O(1) ,是的,你没看错,散列表查找在最佳情况下是可以达到这种常数级别的查找效率的,是不是很神奇。哈希散列(转载 2021-08-05 21:26:18 · 126 阅读 · 0 评论 -
【PHP数据结构】交换排序:冒泡、快排
上篇文章中我们好好地学习了一下插入类相关的两个排序,不过,和交换类的排序对比的话,它们真的只是弟弟。甚至可以说,在所有的排序算法中,最出名的两个排序都在今天要介绍的交换排序中了。不管是冒泡、还是快排,都是面试中的常见排序算法,常见到什么地步呢?但凡学习数据结构和算法,甚至是你完全没有学习过,也多少都会听说过这两个排序算法。而一些大中型公司更是直接在面试题中指明不要使用这两种算法来实现一些排序的题目,这又是为什么呢?那当然也是因为这两个算法实在是太出名了,很多人都随便就能手写出来。当然,不管你面试的公司有转载 2021-08-05 20:31:12 · 105 阅读 · 0 评论 -
【PHP数据结构】完全二叉树、线索二叉树及树的顺序存储结构
在上篇文章中,我们学习了二叉树的基本链式结构以及建树和遍历相关的操作。今天我们学习的则是一些二叉树相关的概念以及二叉树的一种变形形式。完全二叉树什么叫完全二叉树呢?在说到完全二叉树之前,我们先说另外一个名词:“满二叉树”。像我们之前文章中演示过的那个二叉树,就是一颗“满二叉树”。在这颗树中,所有的结点都有两个孩子结点,没有哪个结点是只有一个孩子结点的,并且所有最底层的叶子结点都在同一层,这种树就称为“满二叉树”,也称为“完美二叉树”。是不是非常漂亮的一颗树?没错,这种二叉树非常地完美,它没有转载 2021-07-31 15:51:58 · 118 阅读 · 0 评论 -
【PHP数据结构】图的概念和存储结构
随着学习的深入,我们的知识也在不断的扩展丰富。树结构有没有让大家蒙圈呢?相信我,学完图以后你就会觉得二叉树简直是简单得没法说了。其实我们说所的树,也是图的一种特殊形式。图的概念还记得我们学习树的第一篇文章时看到的那张关于树的图片吗?在当时,我们就说过,图c 不是一颗树,而是一个图。为什么呢?从树的定义我们可以看出,树只能有一个根结点,平级之间不能有联系,可以有多个子结点。而图就不用遵守这些规则,图的特点就是结点之间都可以互相有联系。比如下图这样的都是图。在上面所画的图中,图b 是的箭转载 2021-07-31 15:39:26 · 81 阅读 · 0 评论 -
【PHP数据结构】图的存储结构
图的概念介绍得差不多了,大家可以消化消化再继续学习后面的内容。如果没有什么问题的话,我们就继续学习接下来的内容。当然,这还不是最麻烦的地方,因为今天我们只是介绍图的存储结构而已。图的顺序存储结构:邻接矩阵什么是邻接矩阵首先还是来看看如何用顺序结构来存储图。不管是栈、队列、树,我们都可以使用一个简单的数组就可以实现这些数据结构的顺序存储能力。但是图就不一样了,从上篇文章中,我们学到过,一个结点的表示是 <x, y> 这种形式。如果我们把这个结点相像是一个坐标轴上的点,那么我们是不是就可转载 2021-07-31 15:31:28 · 123 阅读 · 0 评论 -
【PHP数据结构】图的遍历:深度优先与广度优先
在上一篇文章中,我们学习完了图的相关的存储结构,也就是 邻接矩阵 和 邻接表 。它们分别就代表了最典型的 顺序存储 和 链式存储 两种类型。既然数据结构有了,那么我们接下来当然就是学习对这些数据结构的操作啦,也就是算法的部分。不管是图还是树,遍历都是很重要的部分,今天我们就先来学习最基础的两种图的遍历方式。树的遍历演化到图的遍历还记得在树的学习中,我们讲到过先序、中序、后序以及层序遍历这几种遍历形式吗?其实先序、中序和后序可以看作是一种遍历方式,它们都是使用栈结构来进行遍历,特点就是先一条路走到黑,转载 2021-07-31 15:20:04 · 199 阅读 · 0 评论 -
【PHP数据结构】图的应用:最小生成树
在学习了图的基本结构和遍历方式后,我们再继续地深入学习一些图的基本应用。在之前的数据结构中,我们并没接触太多的应用场景,但是图的这两类应用确是面试或考试中经常出现的问题,而且出现的频率还非常高,不得不来好好说一说。什么是最小生成树?从前面的学习中,我们应该能够发现,图就是一种扩展的树结构。对于树来说,它只有一个上级结点,同级结点之间没有关联。而图则打破了树的这些规则。我们再反过来想想,能不能给定一个条件,那就是连接上所有的结点,但是每个结点之间只保留一条边。这样形成的一颗简单的树其实就是能够串联所有转载 2021-07-31 12:19:41 · 147 阅读 · 0 评论 -
后期静态绑定在PHP中的使用
什么叫后期静态绑定呢?其实我们在之前的文章PHP中的static中已经说过这个东西了。今天我们还是再次深入的理解一下这个概念。首先,我们通过一段代码来引入后期静态绑定这一概念:class A{ public static function who() { echo __CLASS__, PHP_EOL; } public static function test() { self::who(); }}class B转载 2021-02-28 16:39:29 · 78 阅读 · 0 评论 -
[PHP] php使用curl_multi_exec并行同时执行http请求
当php代码要对外请求多个接口的时候 , 可以使用下面的方式并行执行多个请求主要是使用curl_multi_exec函数实现代码中请python基础教程求的test.php文件 , 是sleep(10)秒如果按传统的逐行执行的方式 , 请求两次这个接口代码会阻c#教程塞20秒的时间 , 现在使用同时并行执行的方式,代码只会阻塞10秒并且请求也是会同时到达对方接口的<?php// 创建一对cURL资源$ch1 = curl_init();$ch2 = curl_init();// 设转载 2021-02-28 16:31:01 · 265 阅读 · 0 评论