php
文章平均质量分 57
不管什么语言,只有掌握了基础,才能勇往直前
飞马攻城师
越努力的人越帅!!!
展开
-
php 斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖,这个数列从第三项开始,每一项都等于前两项之和。原创 2023-02-27 18:19:47 · 778 阅读 · 1 评论 -
php 排序算法
php 常用的排序算法原创 2023-02-26 17:16:09 · 479 阅读 · 1 评论 -
composer require、install和update的区别
composer require、install和update的区别原创 2023-02-16 20:11:11 · 793 阅读 · 0 评论 -
php xss攻击
xss攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括php、VBScript、ActiveX、 Flash 或者甚至是普通的HTML。原创 2023-01-29 19:30:56 · 1023 阅读 · 0 评论 -
php sql注入
在应用程序中,为了和用户交互,允许用户提交输入数据,假如应用程序并没有对用户输入数据进行处理,攻击者可以输入一些跟sql语句相关的字符串(一般带有特殊字符)从而让应用程序执行危险的 SQL 操作,导致泄漏机密数据(比如用户信息)或直接修改删除线上的数据。原创 2023-01-16 13:05:21 · 2329 阅读 · 0 评论 -
php 面试归纳
php 面试归纳原创 2018-03-02 13:17:38 · 488 阅读 · 0 评论 -
面向对象的三大特性
1、封装性:将方法和属性封装到类中,将具体的实现隐藏到类中,只提供一些开放的方法去访问,可以通过权限控制来实现。<?php class person{ private name = 'user'; private age = 11; private intro = ''; private function setIntro(){ $this->...原创 2019-09-17 21:06:25 · 218 阅读 · 0 评论 -
理解什么是CGI
CGI: CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。理解:web server(比如说nginx) 只是内容的分发者。如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静...原创 2018-03-31 02:40:48 · 853 阅读 · 0 评论 -
什么是 FastCGI与php-fpm
FastCGI简介:快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。 是用来增强cgi协议的。CGI和FastCGI的比较:CGI: 相较于Fastcgi而言其性能瓶颈在哪呢?CGI针对每个http请求都是fork一个新进程来进行处理,处理过程包括解析php.ini文件,初始化执行环境等,然后这个进程...原创 2020-02-23 15:31:17 · 478 阅读 · 0 评论 -
PHP $_SERVER的使用总结
路径信息的获取:'PHP_SELF':当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/foo/bar.php 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /foo/bar.php。 'SCRIPT_NAME':包含当前脚本的路径。这在页面需要指向自己时非常有用。echo '$_SERVER["PHP_S...原创 2018-03-29 18:13:53 · 530 阅读 · 0 评论 -
php 密码加密(password_hash)
只要不设置,它会自动创建安全的盐值。就像以上提及的,在 PHP 7.0 提供 salt选项会导致废弃(deprecation)警告。未来的 PHP 发行版里,手动提供盐值的功能可能会被删掉。注意,该常量会随着 PHP 加入更新更高强度的算法而改变。所以,使用此常量生成结果的长度将在未来有变化。因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。2、 在自己的服务器上做基准测试,调整 cost 参数直至函数时间开销小于 100 毫秒(milliseconds)。原创 2018-03-14 15:51:08 · 10567 阅读 · 2 评论 -
PHP 文件并发操作(文件锁)
默认的:PHP的文件操作函数,不是阻塞状态,而是自由操作状态。条件:当需要一个脚本操作而需要阻塞另外的脚本操作时,需要用到文件锁。锁操作流程:先加锁,检测锁是否加成功,如果成功再使用!锁定类型:读锁: s-Lock(share-lock)共享锁,读操作前,期望增加的锁定。导致,允许并发读,阻塞额外的写操作。写锁: x-lock(exclusive-l...原创 2018-03-30 16:24:57 · 7199 阅读 · 0 评论 -
file_get_content的get和post请求
上下文选项介绍: PHP提供了多种上下文选项和参数,可用于所有的文件系统或数据流封装协议。上下文由 stream_context_create()创建。选项可通过stream_context_set_option()设置,参数可用stream_context_set_params()设置。多种上下文:(请参考php手册) 获取上下文://http上下文$pos...原创 2018-03-21 18:51:13 · 5450 阅读 · 0 评论 -
PHP 目录的函数使用
创建目录1、mkdir:尝试新建一个由 pathname 指定的目录。bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )默认不支持递归创建:第三个参数写true: 提示:第二个在windows被忽略,在l...原创 2018-03-26 13:24:39 · 451 阅读 · 0 评论 -
php 目录操作
递归获取目录内容递归点:读取到的文件为目录时。 1、先读取某个目录内容(不包含子目录的): 2、判断每个读到的文件是否为目录,如果为目录,递归调用,并将当前子目录作为参数传递。3、缩进方式输出结果 递归调用深度,就是该函数确定的文件的缩进级别! 每当递归调用一次,则缩进级别增加1级。 //str_repeat:重复一个字符串,返回 inpu...原创 2018-03-26 15:11:34 · 186 阅读 · 0 评论 -
redis 主从模式
mysql为了降低每个服务器负载,可以设置读写分类(有写服务器、有读取服务器),一个服务器负载“写”(添加、修改、删除)数据,其他服务器负载“读”数据主服务器数据会“自动”同步给从服务器准备:1、有两台redis服务器(安装了redis服务的主机):本地和远程服务器 2、本地安装了php集成环境(phpstudy)并安装了redis扩展开始配置将本地服务器作为...原创 2018-04-01 17:53:44 · 928 阅读 · 0 评论 -
php 字符串函数总结
转义字符串:addslashes — 使用反斜线引用字符串stripslashes — 反引用一个引用字符串htmlentities —将字符转换为 HTML 转义字符html_entity_decode — Convert all HTML entities to their applicable characters$orig = "I'll \"walk\" the &...原创 2018-04-01 23:56:04 · 346 阅读 · 0 评论 -
php 三种文件下载的实现
1、直接添加文件链接&lt;button&gt; &lt;a href = "http://localhost/down.zip"&gt; 下载文件&lt;/button&gt;点击该按钮下载: 2、传递参数查找并跳转到下载链接传递参数:&lt;button&gt; &lt;a原创 2018-03-27 09:26:56 · 95763 阅读 · 4 评论 -
php 传值和引用的理解
介绍: 每个php变量存在一个叫"zval"的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(referenceset)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,...原创 2018-03-28 16:11:31 · 499 阅读 · 0 评论 -
php curl 发送伪造请求
public function curlHtml(){ //防止超时 set_time_limit(0); //要请求的网站的相关参数 $url = "http://www.w3school.com.cn"; /*$data = array( 'id'=>1 )...原创 2018-04-22 19:49:25 · 2627 阅读 · 0 评论 -
php PCRE函数的使用
替换字符串mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subjec...原创 2018-04-26 23:06:14 · 593 阅读 · 0 评论 -
php中匿名函数的使用
1、作为回调函数使用<?phpecho preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]);}, 'hello-world');// 输出 helloWorld2、作为变量赋值<?php$greet = function($name)...原创 2018-04-27 22:26:03 · 731 阅读 · 0 评论 -
php.ini 常用配置
资源限制max_execution_time integer也可以用函数设置set_time_limit ( int $seconds )这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。max_execution_time 仅仅只影响脚本本身运行的时间。任...原创 2018-03-23 16:20:11 · 417 阅读 · 0 评论 -
php header()函数的使用
1、 跳转页面header('Location:'.$url); //Location和":"之间无空格。 2、 声明content-typeheader('content-type:text/html;charset=utf-8'); 3、 返回response状态码header('HTTP/1.1 404 Not Found'); ...原创 2018-03-18 03:41:55 · 4235 阅读 · 0 评论 -
php 文件上传
表单提交 表单中的数据类型共两种:字符串型和文件型。 通过表单的enctype属性告知浏览对请求数据做什么样的处理例:<form enctype="multipart/form-data" action="__URL__" method="POST"> <!-- MAX_FILE_SIZE 必须放在文件输入字段之前 --> &l...原创 2018-03-17 03:53:46 · 262 阅读 · 0 评论 -
window 中php安装redis扩展
步骤:点击pecl扩展包网址:http://pecl.php.net/packages.php搜索redis关键词 点击挑转 选择redis版本 选择和使用PHP相对应的扩展(版本号,是否线程安全,多少位) 解压缩,复制dll后缀的扩展文件到ext目录下 重启服务器,查看phpinfo() ...原创 2018-02-28 16:19:57 · 253 阅读 · 0 评论 -
PSR-PHP标准规范
简介PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于 Laravel, Joo...原创 2018-02-28 17:14:11 · 279 阅读 · 0 评论 -
php中 include 和 require,include 和 include_once,require和require_once 的区别
require()语句的性能与include()相类似,都是包括并运行指定文件。include()和require()的区别:加载次数不一样 include():在执行文件时每次都要进行读取和评估; require():文件只处理一次(实际上,文件内容替换require()语句)分析:如果可能执行多次的代码,则使用require()效率比较高。...原创 2018-03-08 17:43:19 · 315 阅读 · 0 评论 -
类型约束
概念: PHP 5 可以使用类型约束。函数的参数可以指定必须为对象(在函数原型里面指定类的名字),接口,数组(PHP 5.1 起)或者 callable(PHP 5.4 起)。 注意:如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。类型约束不能用于标量类型如 int 或 string。Traits 也不允许。类型约束不只是用在类的成员方法里,也能使用在函数...原创 2018-02-28 19:41:37 · 231 阅读 · 0 评论 -
依赖注入
依赖注入理解:是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。简单来说依赖注入是通过构造注入,函数调用或者属性的设置等来提供组件的依赖关系。控制反转理解:一个系统通过组织控制和对象的完全分离来实现”控制反转”。对于依赖注入,这就意味着通过在系统的其他地方控制或实例化依赖对象,从而实现了解耦。例如MVC 框架通常会提供超类或...原创 2018-03-01 14:35:40 · 1127 阅读 · 0 评论 -
数据库抽象层
数据库抽象层理解:相信有使用过框架的都知道数据库类,其实就是属于抽象层,通常建立在pdo 和 mysqli 之上。通过模拟的方式来使你的数据库拥有一些之前不支持的功能。这种抽象是真正的数据库抽象,而不单单只是 PDO 提供的数据库连接抽象。优点:封装数据库常用的操作,并进行数据预处理方便多个数据库的连接和使用...原创 2018-03-01 15:34:40 · 958 阅读 · 0 评论 -
为什么使用模板
模板类型:原生模板:直接用 PHP 来写模板 没有了编译阶段,速度会更快,但是尽管 PHP 不断升级为成熟的、面向对象的语言,但它作为模板语言 没有改善多少。编译模板:通过将输入的代码,先编译再输出 从自动转义到继承以及简化控制结构,编译模板设计地更容易编写,可读性更高,同时使用上也更加的安全,但是由于这些模板需要编译,在性能上会带来一些轻微的影响,不过如果适...原创 2018-03-01 16:12:33 · 325 阅读 · 0 评论 -
怎么解决网站的大流量访问
硬件升级 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。负载均衡 它是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来处理网站的请求。 公司比较有钱的,可以购买专门负责负载均衡的硬件(如:F5),效果肯定会很好。对于大部分公...原创 2018-03-09 14:09:17 · 1213 阅读 · 0 评论 -
get 和 post请求的区别
1、请求的形式GET请求:请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。POST请求:会把请求的数据放置在HTTP请求包的包体中。 例如下面的name=shuaige就是实际的传输数据。[plain] view plain copyPO...原创 2018-03-01 19:19:47 · 258 阅读 · 0 评论 -
UTF-8有BOM和无BOM的区别
BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。原创 2018-03-15 22:50:31 · 76917 阅读 · 3 评论 -
php redis扩展的使用
<?php##################### Redis方法 #####################/** * 连接 * Connection */$redis = new Redis;$redis->connect('127.0.0.1', 6379, 1); //短链接,本地host,端口为6379,超过1秒放弃链接$redis...原创 2018-03-09 18:31:52 · 639 阅读 · 0 评论 -
cookie会话技术
cookie理解:允许 服务器端程序(PHP) 在 浏览器上存储数据 的一种技术由服务器脚本(PHP)决定存储内容该数据存储好之后,典型的特征:在浏览器向该服务器发出请求时,会携带该服务器所存储的数据。公式: 设置cookie值:Setcookie(键,值,有效期=0,有效路径=‘’,有效域名=‘’,是否仅安全连接传输=false,是否HTTPonly=fa...原创 2018-03-02 01:52:36 · 299 阅读 · 0 评论 -
php 生成器
作用: 生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。实现方式: 当一个生成器被调用的时候,它返回一个可以被遍历的对象.当你遍历这个对象的时候(例如通过一个foreach循环),PHP 将会在每次需要值的时候调用生成器函数,并在产生一个值之后保存生成器的状态,这样它就可以在需要产生下一个值的时候恢复...原创 2018-03-16 13:52:51 · 248 阅读 · 0 评论 -
php中define和const的区别
常量的理解:常量前面没有美元符号($);常量只能用 define() 函数或const定义,而不能通过赋值语句;常量可以不用理会变量的作用域而在任何地方定义和访问;常量一旦定义就不能被重新定义或者取消定义;常量的值只能是标量。常量定义的区别: const的使用 define的使用 const用于类常量的定义 Define不可以用于类常量的定义,可用...原创 2018-03-10 17:35:02 · 625 阅读 · 0 评论 -
session会话技术
session理解:session会话数据的存储位置:服务器端。实现方式: 2.1 在 服务器端,建立很多的会话数据区(session数据区) 2.2 为 每个session会话数据区分配唯一标识 2.3 将该唯一标识,分配给对应会话浏览器(因此:session技术基于COOKIE技术!)操作步骤:1、开启session机制session_start...原创 2018-03-07 09:21:44 · 567 阅读 · 0 评论