php学习笔记
文章平均质量分 60
jacklin_001
这个作者很懒,什么都没留下…
展开
-
php中递归的使用
递归即调用自身的函数。如上我们定义了一个call方法和静态变量$i,如果我们不给$i变量添加判断,而是直接运行,就会出现死循环。如果没有在方法体内用global定义$i,则会出现$i未被声明的错误。并且需要注意,在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用。php的引用,简单来说就是在变量或者函数、对象等前面加上&符号(也就是引用符号),这里就需要了解下PHP引用传递的概念,即可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。...转载 2022-07-16 12:10:55 · 427 阅读 · 0 评论 -
php 返回mysql插入数据的id
有些时候在执行数据库的INSERT操作后需要知道其产生的ID(我用的MySQL,主键都是设的AUTO_INCREMENT,执行插入操作的时候不用指定ID的值而由数据库自行产生),这时候就可以使用PHP的函数mysql_insert_id()直接获得这个ID,非常方便。但是有一点,如果在INSERT语句里面明确指出了具有AUTO_INCREMENT属性的ID列的值,那么函数将返回0,因为该ID值是由用户指定的,不是由数据库自动产生的。PHP手册对该函数的描述如下:mysql_insert_id原创 2022-03-03 15:16:02 · 1277 阅读 · 0 评论 -
php面向对象编程6大原则+3大类型+9大设计模式
做学习记录使用一、面向对象编程的6大设计原则(单里依接最开)单一职责原则——类要职责单一,一个类只需要做好一件事情。里氏替换原则——子类可以扩展父类的功能,但不能改变父类原有的功能(可以实现父类的抽象方法和增加自己特有的方法,不要覆盖父类的非抽象方法)。依赖倒置原则——-面向接口编程:只需关心接口,不需要关心实现。接口隔离原则——-建立单一接口,尽量细化接口,接口中的方法尽量少。低耦合高内聚。最少知识原则——-一个类对自己依赖的类知道的越少越好,两实体间最好不交互或少交互。开闭原则..转载 2021-09-16 18:11:56 · 1375 阅读 · 0 评论 -
PHP 面向对象变成适配器模式
适配器模式属于结构性设计模式,它也是一种常用的设计模式。适配器模式适配器模式很容易理解,从字面意思就知道是用来做适配的。他的作用是将原本不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而不能一起工作的类能够一起工作。用日常生活中的例子来解释,我们知道手机充电口有好多种,苹果的、安卓的大孔以及小孔,经常我们手机没电借了一个充电器,发现不兼容我们自己的手机孔。现在市场有有充电器的转换头,有了转换头,我们就能够去把手机充电了。适配器里面三种角色:目标抽象类(Target)、适配者(Adapte转载 2021-09-15 16:35:54 · 127 阅读 · 0 评论 -
PHP接口的概念与接口的应用场景
类: 是某一类事物的抽象,是某类对象的蓝图.举例:比如: 女娲造人时,脑子中关于人的形象 就是人类 class Human如果,女娲决定造人---->形象又没最终定稿时,---->她脑子有哪些支离破碎的形象呢?她可能会这么思考:动物: 会吃饭猴子: 会奔跑猴子: 会哭自己: 会思考小鸟:会 飞定义如下功能:eat()run();cry();think();interface:接口//interface:接口interface转载 2021-09-15 15:14:56 · 508 阅读 · 0 评论 -
PHP修饰类和方法的关键字简介
const在PHP中定义常量我们通常用define,但是在类中,我们可以使用const关键字定义类常量,用法如下:classMyClass{constconstant='constantvalue';functionshowConstant(){echoself::constant."";}}const并非必须定义在类的内部,如:constBAR=1;?><?php # bar.phprequire'foo.php';var_dump(F...原创 2021-09-15 11:08:41 · 276 阅读 · 0 评论 -
php new self()关键字的用法
在类中 self的用法 和this的用法差不多 , php new self() 一般在类内部使用,作用是对自身类实例化,下面给个实例讲解如何使用:<?phpclass p { public function __construct() { echo '构造函数'; } public static function getInstance() { new self(); }}p::getInstance();?>.原创 2021-09-09 15:34:05 · 250 阅读 · 0 评论 -
php执行外部命令linux命令方式介绍
一、PHP中调用外部命令介绍二、关于安全问题三、关于超时问题四、关于PHP运行linux环境中命令出现的问题一、PHP中调用外部命令介绍在PHP中调用外部命令,可以用,1>调用专门函数、2>反引号、3>popen()函数打开进程,三种方法来实现:方法一:用PHP提供的专门函数(四个):PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()注意事项:由于PHP配置中的php.ini默认设置转载 2021-08-06 16:59:07 · 609 阅读 · 0 评论 -
Failed to start LSB: starts php-fpm.
执行启动php服务的时候出现启动失败的错误,提示Failed to start LSB: starts php-fpm.如下执行所示[root@aa]# service php-fpm startRedirecting to /bin/systemctl start php-fpm.serviceJob for php-fpm-56.service failed because the control process exited with error code. See "systemct原创 2021-08-04 10:52:29 · 1738 阅读 · 0 评论 -
php swoole TCP 服务器搭建及使用详解
实现目标:tcp客户端实现与swoole搭建的tcp服务端通信传输数据,客户端请求提交数据,服务端接收数据存入数据库及对数据库查询结果返回给tcp客户端php swoole wiki参考文档地址https://wiki.swoole.com/#/start/start_tcp_server用到的模拟工具:sockettool首先理解以下TCP工作的原理TCP的“三次握手”TCP的三次握手可以确保服务器和客户端之间可以正常通信。三次握手的过程:至于这个过程的解释,可以点击下面的原创 2021-07-26 14:57:35 · 1354 阅读 · 0 评论 -
PHP 运用SFTP传输数据
最近客户传输数据需要支持sftp传输,调了好久,做一次记录:需要ssh2扩展支持:编译安装扩展:下载地址wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gzwget http://pecl.PHP.net/get/ssh2-0.12.tgz安装libssh步骤tar -zxvf libssh2-1.4.2.tar.gzcd libssh2-1.4.2./configure --prefix=/usr/local/原创 2021-07-21 19:23:59 · 397 阅读 · 2 评论 -
PHP7配置文件php.ini和php-fpm.conf说明
php-fpm.conf是PHP-FPM进程管理器的配置文件,php.ini是PHP解析器的配置文件。php.ini中有非常多的描述文件,挑部分关键参数说明#设置PHP的扩展库路径extension_dir=""#避免PHP信息暴露在http头中expose_php = Off#避免暴露php调用mysql的错误信息display_errors = Off#在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)log_errors =原创 2021-04-21 18:48:07 · 921 阅读 · 0 评论 -
PHP中9大缓存技术总结
PHP中9大缓存技术总结1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****Ob_end_clean();2、页面部分缓存该种方式,是将一个页面中不经常变的部分进行静态原创 2020-12-31 14:51:01 · 126 阅读 · 0 评论 -
在centos7上安装swoole
先来了解下swoole:Swoole是:PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,处理异步任务,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。安装遇到的问题首先确定php版本要求大于p原创 2020-07-15 10:05:29 · 694 阅读 · 0 评论 -
Centos7 Yum 安装PHP7.2
文章用以学习记录:1、安装源安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包。php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic。如果跳过epel-release的话,安装webtatic的时候,会有错误爆出。所以,这里需要的命令是:rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.原创 2020-07-14 19:05:00 · 491 阅读 · 0 评论 -
php操作xml最快的速度学习
做分享做总结不多哔哔,直接上代码:掌握php如何通过dom对象创建xml文件,php如何读取xml及如何读取xml文件,获取到读取的xml对象就可以直接操作了<?php/** * Created by PhpStorm. * User: EDZ * Date: 2020/7/6 * Time: 18:54 *///创建一个新的DOM文档$dom = new DOMDocument();//在根节点创建departs标签$departs = $dom->create.原创 2020-07-07 11:39:29 · 262 阅读 · 0 评论 -
php内存管理机制、垃圾回收机制
一、内存管理机制<?php//内存管理机制var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存$a = "laruence";var_dump(memory_get_usage());unset($a);var_dump(memory_get_usage());//输出(在我的个人电脑上, 可能会因为系统,PHP版本,载入的扩展不同而不同)://int 240552//int 240720//int 2405原创 2020-07-06 11:51:20 · 156 阅读 · 0 评论 -
php获取某个请求链接的head内容
php的get_headers可以取得服务器响应一个 HTTP 请求所发送的所有标头。$url = 'http://www.baidu.com';print_r(get_headers($url));返回结果打印:Array( [0] => HTTP/1.0 200 OK [1] => Accept-Ranges: bytes [2] => Cache-Control: no-cache [3] => Content-Length:原创 2020-06-04 10:23:19 · 724 阅读 · 0 评论 -
PHPstorm could not list the contents of folder 的解决方案
我在使用PHPstorm的时候,遇到了could not list the contents of folder的错误,使用外部的FTP工具是能正常连接到服务器的,但是在PHPStorm上却不行,纠结了半天,在PHPStorm的官网找到了以下内容PhpStorm seems to connect to the server but can’t list files or perform ...原创 2020-03-17 18:34:57 · 1742 阅读 · 0 评论 -
分表分页问题
(此文章只做自己工作记录使用)假如每天一个表表的名称定义格式为:sys_client_202001061、确定要分页的数据总表数(table_count)sys_get_timespan(为把日期差换算为天数的函数)$day_count=sys_get_timespan($start_date,$end_date,'d');$day_count=$day_count+1;...原创 2020-02-06 18:25:51 · 429 阅读 · 0 评论 -
php array处理函数(一)
array_column() 返回输入数组中某个单一列的值。语法:array_column(array,column_key,index_key);参数说明:array必需。规定要使用的二维数组(记录集)。key必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合 inde...原创 2019-12-03 11:18:13 · 387 阅读 · 0 评论 -
php中json_encode的[]与{}
我们在使用json_encode的时候有的时候生成的json为[],有的情况会生成{}。这样就造成我们在js中解析是不同的。如果PHP数组的键都是数字或者空数组,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。两者在js中的调用是不同的。事实上,只要在PHP数组的键中有一个字符串形式的键,...原创 2019-11-27 11:15:54 · 415 阅读 · 0 评论 -
php array处理函数 array_filter(),array_map(),array_walk(),array_reduce()
array_filter—用回调函数过滤数组中的单元说明:array_filter(array$array[,callable$callback[,int$flag= 0]] ) :array依次将array数组中的每个值传递到callback函数。如果callback函数返回 true,则array数组的当前值会被包含在返回的结果数组中。数组的...原创 2019-11-21 18:35:00 · 651 阅读 · 0 评论 -
php 中instanceof的使用
作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。第一种用法:<?php$obj = new A();if ($obj instanceof A) { echo 'A';}第二种用法:<?phpinterface ExampleInterface{ public function interfaceMethod()...原创 2019-11-15 14:29:17 · 147 阅读 · 0 评论 -
php使用smtp发送邮件(ssl链接方式, PHPMailer类)
PHPMailer类库下载地址github:https://github.com/PHPMailer/PHPMailercomposer安装composer require phpmailer/phpmailer1、不使用ssl模式发送代码示例如下:<?php/*** by yl*/header("content-type:text/html;charse...原创 2019-11-11 10:46:26 · 2790 阅读 · 0 评论 -
centos php-fpm 安装 ftp扩展
linux+nginx+php+mysql环境下,在部署的时候没有添加php的ftp扩展。1、找到安装的PHP源码包解压的文件夹进入到到FTP的扩展目录# /home/php-5.3.6/ext/ftp(按自己的软件路径)2、调用phpize程序生成编译配置文件[root@zj ftp]#/usr/local/php/bin/phpize注意:Cannot find co...原创 2019-10-16 18:59:44 · 301 阅读 · 0 评论 -
PHP将图片转base64编码以及base64图片转换为图片并保存代码
一: 图片转base64编码/*图片转换为 base64格式编码*/$img = 'uploads/01.png';$base64_img = base64EncodeImage($img);echo '<img src="' . $base64_img . '" />'; function base64EncodeImage ($image_file) { $...转载 2019-07-15 14:31:30 · 606 阅读 · 0 评论 -
php 中 Traits 详解
PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。php的Traits和Go语言的组合功能有点类似,通过在类中使用use关键字声明要组合的Trait名称,而具体某个Trait的声明使用trait关键词,Trait不能直接实例化。具体用法请看下面的代码:<?phptrait Drive { public $carNam...转载 2019-06-03 11:09:28 · 662 阅读 · 0 评论 -
PHP函数的参数里,前面三个点的形式...$args是什么含义和用法?
这是PHP5.6添加的功能(一种语法糖):可以通过...将函数参数存储在紧接的可遍历的变量中。function add($a, $b, $c){ return $a + $b + $c;} $num=[2, 3];echo add(1, ...$num); //6上面的第二个和第三个参数将会从$num中循环赋值($b为2,$c为3)。...转载 2019-05-22 19:13:20 · 2157 阅读 · 0 评论 -
php常见算法
冒泡排序算法基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。这样比较小(大)的数值就将逐渐从后面向前面移动。<?php function mysort($arr) { for($i = 0; $i < count($arr); $i++) { ...转载 2019-04-09 16:26:15 · 172 阅读 · 0 评论 -
phpmailer发送邮件相关记录
一、php环境要求:php配置文件php.ini需要开启OpenSSL ,socketsOpenSSL support enabled Sockets Support enabled 二、邮箱准备工作 确保发送者邮箱密码正确,代码编写正确 例如:smtp.163.com 163smtp服务器,需要开启SMTP功能,并且设置S...原创 2019-03-27 11:22:39 · 623 阅读 · 0 评论 -
PHP Socket编程之使用fsockopen函数
PHP Socket编程 之使用fsockopen()函数Socket可以理解为两台计算机相互通信的通道。用法:使用fsockopen()函数具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)常见的端口表:端口号 主要用途21 FTP22 ...转载 2018-11-28 18:58:58 · 327 阅读 · 0 评论