
*PHP
文章平均质量分 56
哈尼熊熊
当你的才华撑不起你的野心时,就静下心来好好学习!
展开
-
软件安装与运行
鉴于自己的记忆力越来越差,这些基础的东西也记录下来,省的下次费事。PHP开发环境:Windows集成:XAMPP备注:根据PHP版本不同,分为XAMPP5, XAMPP7 等。同一台设备上可以同时安装多个集成环境。运行哪个自己决定。环境变量那边可以配置一个常用的PHP版本路径,如果临时启用其他版本的PHP时,只需在执行PHP时补全PHP所在路径。常用开发软件:PHPstorm...原创 2019-04-03 14:36:28 · 387 阅读 · 0 评论 -
PHP引用
1. 引用是什么在 PHP 中引用意味着用不同的名字访问同一个变量内容。引用不是指针,并不像 C 的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址……如果对一个未定义的变量进行引用赋值、引用参数传递或引用返回,则会自动创建该变量。自 PHP 5 起,new 自动返回引用。PHP中引用分为:变量引用,函数引用,对象引用。2. 变量引用两个变量来指向同一个内容 。例...原创 2018-07-16 18:26:46 · 205 阅读 · 0 评论 -
PHPstorm + Xdebug 调试
1. 安装 PHP 之后一般不会默认安装 Xdebug,需要自己在 php.ini 中将相关扩展打开打开; 下载正确的Xdebug文件(如果自行下载并配置后发现PHPinfo中始终没有xdebug时,考虑是下载版本不对) 正确下载步骤: 1. 复制phpinfo整个网页内容(Command+A),粘贴到https://xdebug.org/wizard.php 确定X...原创 2018-05-18 17:48:49 · 163 阅读 · 0 评论 -
PHP复制
在记忆中 PHP 简单变量的拷贝是按值传递,数组和对象的拷贝是按引用传递,即通过引用来实现。其实,PHP的拷贝都是按值传递的额,只是数组和对象的变量值里面存的是数组和对象的地址。PHP 中可以通过 clone 关键字按值拷贝对象。简单变量和对象好理解,但是对于数组来说似乎又有一些难以理解的地方,似乎数组的复制是 ‘真’ 复制一样。解析:数组的拷贝是值传递。PHP 在管理内存原创 2018-04-19 14:51:46 · 252 阅读 · 0 评论 -
PHP类
自动加载类很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本开头写一个长长的包含文件列表(每个类一个文件)。例如,很多 include(),require() 等。在 PHP 5 中,不再需要这样了。可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个...原创 2017-07-10 10:59:12 · 498 阅读 · 0 评论 -
正则表达式
特殊字符特别字符描述( )标记一个子表达式的开始和结束位置。.匹配除换行符 \n 之外的任何单字符。[xyz]字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。[^xyz]负值字符集合。匹配未包含的任意字符。例如, '原创 2018-04-09 17:19:34 · 152 阅读 · 0 评论 -
thinkPHP 与 yii 的区别
thinkPHP:社区火爆,中文的新手教程很详细,比较容易上手。web项目开发中大部分代码都是重复的,因此自动化代码生成工具是必不可少的,截至最新的tp3.2.3,我仍然没看到tp对自动化工具有任何支持的迹象;gii非常好用的建模块、控制器(动作)、CURD操作等功 能,可以减少开发周期。 tp缺失了数据迁移工具,这都导致了项目后期维护由很大困难Yii完全用面向对象的方式构建,常用web类库都以组...原创 2017-11-20 17:54:03 · 3561 阅读 · 0 评论 -
url的处理函数
1.parse_url()本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。parse_url('http://username:password@hostname/path?arg=value#anchor');以上例程会输出:Array( [scheme] =>http [host] =>hostname [user] =>...原创 2018-03-16 16:09:55 · 519 阅读 · 0 评论 -
php中文字符
//测试时文件的编码方式要是UTF8<?php$str='中文a字1符';echo strlen($str).'<br>';//14echo mb_strlen($str,'utf8').'<br>';//6echo mb_strlen($str,'gbk').'<br>';//8echo mb_strlen($str,'gb2312').'<br&...原创 2018-03-16 16:03:58 · 382 阅读 · 0 评论 -
隐式转换
PHP是弱语言,会根据程序运行环境自动转换, 在使用 == 号时,如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。(绝对比较请使用 ===)第一个操作数类型第二个操作数类型类型转换整型浮点型整型转换为浮点型整型字符串字符串转换为数字,如果字符串转换后是浮点型,整型也会转换为浮点型浮点型字符串字符串转换为浮点型...原创 2018-03-16 15:57:57 · 347 阅读 · 0 评论 -
PHP Heredoc Nowdoc
php 中的 heredoc技术是php用来引用字符串的一种方式。在phpwind中巧妙的运用了这个技术,实现了逻辑代码和界面设计的分离。语法: 1. 使用操作符 “<<<”2. 操作符后紧跟标识符(开始标识符),之后重起新的一行 输入要引用的字符串,可以包含变量。3. 新的一行,顶格写结束表示符,以分号结束。要注意到几点:1.标识符可以自定义 一般的 有EOT ,EOD ...转载 2018-06-28 15:54:40 · 213 阅读 · 0 评论 -
内存泄露
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。内存泄漏缺陷具有隐蔽性、积累性的特征,比其...原创 2018-07-17 11:01:38 · 220 阅读 · 0 评论 -
PHP垃圾回收
PHP变量存储在一个zval容器里面的,一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。1.变量类型 2. 变量值 3. is_ref 用来标识这个变量是否是属于引用集合 4. refcount 指向该值的变量数量变量初始化赋值的时候:is_ref为false, refcount为1。将变量a的值赋给变量b,变量b不会立刻去在内存中存储值,而是先指向变量a的值,一...原创 2018-07-17 13:17:32 · 141 阅读 · 0 评论 -
laravel 浏览器用户唯一判定
需求:用户登录图片验证码,没法判断当前验证码属于哪个用户的,无法做失效。发现:laravel 自带的 csrf_token 可用,就是这个: <!-- CSRF Token --> <meta name="csrf-token" content="N4gtQWTTr4dKUmtR4YQfE2XLZYOZkeZgPHXCrISS">使用问题...原创 2018-10-29 16:39:32 · 1240 阅读 · 1 评论 -
PHP框架数据库操作
基本上成熟的PHP框架对数据库操作的处理大致相同:1. SQL原生操作;2. 查询构造器; 数据库查询构造器提供了一个方便的接口来创建及运行数据库查询语句。它能用来执行应用程序中的大部分数据库操作,且能在所有被支持的数据库系统中使用。如支持,where(),select(),join()等操作,相对于SQL原生操作带来了很大方便性。3. Active Record 操作;...原创 2018-07-31 10:47:47 · 1171 阅读 · 0 评论 -
闭包(有待继续理解)
https://www.jianshu.com/p/0a3150afb7edhttp://www.php.cn/php-weizijiaocheng-371998.html闭包(其实是个数学定义)就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来...原创 2018-07-27 16:08:49 · 311 阅读 · 0 评论 -
包管理composer
包管理器好处: 方便取用别人已经写好的代码 管理包之前的依赖关系 第一点很明显了:你不会为每个项目都写一个 jQuery、React 这样的东西,而是直接使用别人已经写好的。传统做法是:去官方网站下载对应的 js 文件,然后放到自己项目的对应路径下,比如 /assets/js/ 。而现在有了 npm 和 yarn 这样的东西,99.9999 % 的开放获取的包都在一个集中存...原创 2018-07-26 13:35:59 · 275 阅读 · 0 评论 -
页面跳转的几种方法
转发(forward):当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。因而当使用转发时,浏览器窗口的URL会保持不变。重定向(location):客户端发送请求,web服务器接收该请求后发送 301/302 状态码响应并且发送新的一个地址(location)给客户端浏览器,客户端接受到会自动再发送一个新的请求,而这个...原创 2018-07-29 15:39:34 · 4767 阅读 · 0 评论 -
PHP框架
框架基本结构:目录结构 路由规则 控制器 请求 响应 视图 错误处理与日志 数据库操作 安全相关原创 2018-07-19 17:44:20 · 240 阅读 · 0 评论 -
PHP 命名空间
什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 ...转载 2018-07-04 18:14:59 · 121 阅读 · 0 评论 -
PHP 迭代器 生成器
迭代和迭代器迭代是指反复执行一个过程,每执行一次叫做迭代一次。比如普通的遍历便是迭代:$arr = [1, 2, 3, 4, 5];foreach($arr as $key => $value) { echo $key . ' => ' . $value . "\n";}我们可以看到通过foreach对数组遍历并迭代输出其内容。在foreach内部,每次迭代都会将当前的元...原创 2018-07-05 14:31:23 · 387 阅读 · 0 评论 -
zend 引擎
Zend EngineZend是语言引擎,PHP内核。PHP是从外层展现的完整系统。咋一听似乎有点模糊不清,但是其实并不复杂( 看下面).为了实现一个 web 脚本解释器,你需要三个部分: 第一:解释器部分分析输入代码,翻译代码,然后执行代码。 第二:功能部分 完成语言的功能(函数,等等)。 第三:接口部分与web通信,等等。 Zend完全参与第一部分,部分参与第...原创 2018-07-17 15:00:00 · 590 阅读 · 0 评论 -
PHP杂谈
1. 单引号与双引号的区别· 1. 双引号解释变量,单引号不解释变量,如 在双引号中PHP 将对一些特殊的字符进行解析:如 \n , \\ , \$;但是在单引号中不会进行解释。· 2. 双引号里插入单引号,其中单引号里如果有变量的话,变量解释· 3. 能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判...原创 2018-03-16 15:48:00 · 190 阅读 · 0 评论 -
超全局变量(8个)与魔术方法
1. 超全局变量1. $GLOBALS----->所有的变量都放在里面2. $_SERVER----->关于报头、路径和脚本位置的信息。3. $_REQUEST----->用于收集 HTML 表单提交的数据。4. $_POST----->广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。5. $_GET6. $_FILES7. $_...原创 2018-03-16 15:16:38 · 928 阅读 · 0 评论 -
最简单的PHP接口连数据库(可用来做测试)
<?php//获取POST json 数据$info = file_get_contents('php://input');//解析数据$info_array = json_decode($info, true);if ($info_array) { $name = $info_array['name']; $company = $info_array['compa...原创 2018-03-08 16:27:57 · 2044 阅读 · 0 评论 -
php工作原理
1. PHP的应用程序都是通过WEB服务器(如IIS,Nginx或Apache)和PHP引擎程序解释执行完成的,工作过程:(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后触发一个web请求,并将请求传送到WEB服务器。(2)WEB服务器接受这个请求,并根据其后缀进行判断是一个PHP请求,WEB服务器从硬盘或内存中调出用户要访问的PHP应用程序,并将其发送给PHP引擎程序。(3)PHP引...原创 2017-10-24 16:57:11 · 1671 阅读 · 0 评论 -
记一次平台客服聊天的维护
近期在维护一个平台,平台原开发都已不在,只有源码和一些文档,据说源码还不是最新的,可能还有一些问题。老板想让平台尽快运作起来。客服聊天功能恢复是最紧急的,这花了我近两周多的时间(过了十一),过程也很痛苦。记下来,给以后的自己提个醒。现有情况是,客服和客人只能看见自己的话,看不到对方的,无法进行交流。1. 首先了解客服实现方式。首先猜想是调了一个聊天工具,结果否。又猜想把聊天记录到数据库原创 2017-10-13 17:33:51 · 431 阅读 · 0 评论 -
php数据类型
PHP 支持 8 种原始数据类型。 四种标量类型:boolean(布尔型),integer(整型),float(浮点型,也称作double) string(字符串) 两种复合类型:array(数组),object(对象) 最后是两种特殊类型:resource(资源),NULL(无类型)...原创 2017-06-27 17:09:23 · 595 阅读 · 0 评论 -
生成器
容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有:list, deque, ….set, frozensets, ….dict, def原创 2017-07-17 13:29:45 · 268 阅读 · 0 评论 -
错误与异常
先区别一下php中错误 与 异常的概念吧PHP错误:是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况。平时遇到的warming、notice都是错误,只是级别不同而已。PHP异常:一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。PHP异常处理机制借鉴了java c++等,但是PHP的异常处理机制是不健全的。转载 2017-07-20 10:24:58 · 233 阅读 · 0 评论 -
运算符与流程
比较运算符运算数 1 类型运算数 2 类型结果null 或stringstring将 NULL 转换为 "",进行数字或词汇比较bool 或null任何其它类型转换为 bool,FALSE <TRUEobjectobject内置类可以定义自己的比较,不同类不能比较,相同类和数组同样方原创 2017-06-29 10:22:18 · 202 阅读 · 0 评论 -
PHP变量与常量
PHP有四种不同的变量作用域:static , parameter, global, local.1. 全局变量在所有函数外定义的变量拥有全局作用域,在函数内部声明的变量是局部变量,仅能在函数内部访问。要在一个函数中使用全局变量,需要使用global关键字。 <?php$a = 1;$b = 2;function Sum(){ global $a, $b; $...原创 2017-06-28 16:52:40 · 591 阅读 · 0 评论 -
PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等。例子: if ( isset($user) ) { //do some thing }原因是isset是语言结构,而strlen是一个函数。还有echo 是个语言结构,不是个函数。那什么是语言结构呢?它和函数转载 2017-10-16 16:09:34 · 503 阅读 · 0 评论 -
函数
函数的参数通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。参数是从左向右求值的。 PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数。也支持可变长度参数列表。通过引用传递参数函数在调用的时候,参数会重新开辟内存空间。比如,你传值穿的是$para,但在函数运行的时候会另开辟一个空间,复制一遍$para,之后在函数中操作的内存都是这个函数新开辟的空间。在这个函数消亡的时候,...原创 2017-07-06 10:28:54 · 219 阅读 · 0 评论 -
PHP类相关
1.关键字1) this 关键字:用于类的内部指代当前对象。用处:类内部访问属性或方法或常量,如$this->属性名或方法名。 2) self 关键字:self是指向类本身,也就是self是不指向任何已经实例化的对象。用处:一般self使用来指向类中的静态变量。如 self::$staticVar,在类的内部,不能用$thi...原创 2018-03-14 19:36:59 · 257 阅读 · 0 评论 -
PHP文件操作
记录日志、目录、文件的遍历、上传、多方法得到文件扩展名、文件引用方式、引用函数区别。1. 文件建立:fopen()$file = fopen("test.txt","r");"r"只读方式打开,将文件指针指向文件头。"r+"读写方式打开,将文件指针指向文件头。"w"写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。"w+"读写方式打开,将文件指针指向文件原创 2018-03-14 19:22:38 · 198 阅读 · 0 评论 -
PHP安全处理,过滤函数
在PHP中,有些很有用的函数开源非常方便的防止你的网站遭受各种攻击,例如SQL注入攻击,XSS(Cross Site Scripting:跨站脚本)攻击等.1.mysql_real_escape_string()这个函数在PHP中防止SQL注入攻击时非常有用。这个函数会对一些例如单引号、双引号、反斜杠等特殊字符添加一个反斜杠以确保在查询这些数据之前,用户提供的输入是干净的。但要注意,你是在原创 2018-03-14 19:16:09 · 2206 阅读 · 0 评论 -
PHP错误处理
1. Php错误默认处理方法在 PHP 中,默认的错误处理很简单。一条消息会被发送到浏览器,这条消息带有文件名、行号以及一条描述错误的消息。在创建脚本和 web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。2. 改进的错误处理方法方法一:在有可能出错的函数前加@,然后or die("") 如: @mysql_connect(....原创 2018-03-14 18:48:15 · 218 阅读 · 0 评论 -
php 只能接受get 接受不到POST值
一、PHP获取POST数据的几种方法方法1、最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据解释:也就是表单POST过来的数据方法2、file_get_contents("php://input");说明:允许读取 POST 的原始数据。(用接口测试工具的时候如果 head...转载 2017-11-09 14:32:59 · 5104 阅读 · 0 评论 -
PHP 与 Java 的区别
1. php即写即用的。也就是说每次只有一改动完成,用户立马看到效果,而java则慢多了,代码改动完成后,要重新编译,然后重启jvm,中间耗费的时间可是不少啊,而且重启jvm过程可是会造成用户响应中断的哦。2. php写东西快。php可以说是非常敏捷的,一个需求给到,只要不考虑后期的性能和用户量问题,那是相当快速的,甚至你都可以不用框架,直接写也会非常快的,写一个增删改查功能,可能也就30-50行...原创 2017-11-20 17:38:33 · 2104 阅读 · 0 评论