php
文章平均质量分 61
老胡爱分享
微信公众号【老胡爱分享】
个人主页:http://www.hoohack.me
掘金:https://juejin.im/user/577b3080a633bd005bdaed03
展开
-
说说PHP中foreach引用的一个坑
先来看看下面这段代码:<?php $arr = array('apple','banana','cat','dog'); foreach($arr as $key=>$val) { //some code } echo $val; //输出dog echo $key; //输出3 //下面对val进行赋值原创 2015-04-27 11:21:59 · 9359 阅读 · 0 评论 -
PHP的autoload机制的实现
(1) autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子:/* Person.class.php */ c转载 2013-11-26 08:48:16 · 756 阅读 · 0 评论 -
PHP中spl_autoload_register函数的用法
spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register — 注册__autoload()函数说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。原创 2013-11-26 08:43:07 · 3348 阅读 · 0 评论 -
Ubuntu下apache2修改网站默认目录,主页以及连接phpmyadmin
在php开发过程中,安装的apache的默认目录是在/var/www/,这个目录下有时会有用户权限,比如使用php上传文件到项目目录下时会有权限,这样就不能对所上传的文件进行修改,此时可以通过修改apache2的网站默认目录,这样就避免了上述出现的问题。更改过程比较简单,只需要对apache2的配置文件进行修改就可以了sudo gedit /etc/apache2/sites-en原创 2013-09-04 23:51:23 · 5487 阅读 · 0 评论 -
模版+数据分离渲染方式的设计与实现
一 背景1 现状模版存放于后端php输出页面html结构进行页面渲染ajax请求,需要重渲结构时,php输出html结构builder制作静态页面结构jser完成页面交互逻辑开发2 不足模版数据无法存储本地,导致每次打开页面请求数据量巨大数据每次要从接入层web服务器读取,没有合理利用CDN加速静态模版内容联调成本较大,不利于前端转载 2013-09-25 22:14:28 · 9591 阅读 · 0 评论 -
纯javascript的ajax实现php异步提交表单
很多时候需要异步提交表单,当表单太多是时候,一个个getElementById变得很不实际当然,jquery可以实现异步提交表单,jquery.form.js这个库貌似也挺流行只是有时候并不想使用额外的库,所以就琢磨着自己写,用纯js来实现异步提交表单实现如下(本例用POST方式提交,用php作为服务器脚本)HTM L文件:test原创 2013-09-03 23:09:21 · 10591 阅读 · 1 评论 -
php和smarty中格式化输出日期和时间
在开发过程中,时间的保存如果直接使用日期格式保存的话会比较麻烦,而且不易操作,建议使用秒数的格式保存时间,然后在需要显示的时候通过一定的转换函数将其转成日期与时间的格式。php中格式化输出日期和时间可用:date('Y-m-d H:i:s',时间戳); 的形式输出,对应的是“年-月-日 时:分:秒”。时间戳可以是秒,这样使用该函数就可以将秒数转换成对应的格式输出;原创 2013-09-02 23:30:59 · 8515 阅读 · 0 评论 -
require(),include(),require_once()和include_once()区别
面试中最容易提到的一个PHP的问题,我想和大家共勉一下: require()和include()有许多相似之处,也有些不同。理解它们的不同点非常重要,否则很容易犯错误。我把这两个语句放在一起介绍,读者可以比较学习。 1.require()语句 require()语句用于指定的文件代替语句本身,就象C语言中的include()语句一样。如果php配置文件php.ini中的URL转载 2013-09-02 00:01:11 · 742 阅读 · 0 评论 -
我的php学习笔记(三十八) PHP通过mail()或Socket发从邮件
PHP通过mail()或Socket发从邮件php发送邮件是直接通过mail函数实现的,但是很多人在使用的时候发送不成功,原因是因为相应的文件没有配置完整,而且配置的过程比较麻烦,兼容性很差。要配置的文件有:php.ini文件以及类似sendmail这样的组件的支持。另外一种发送邮件的方式是通过socket通讯,使用SMTP传输。通过使用socket的方式发送邮件的兼容性比较强,但原创 2013-05-12 00:10:20 · 1927 阅读 · 0 评论 -
我的php学习笔记(三十六)PHP中开发自己的UBB代码
什么是UBB代码UBB代码是HTML的一个变种,是Ultimate Bulletin Board (国外一个BBS程序,国内也有不少地方使用这个程序)采用的一种特殊的TAG。UBB代码很简单,虽然功能很少,但基本实现了我们常用的一些功能.就是在PHP文件中可以自己定义的一些代码,然后可以根据这些代码实行相应的在HTML中也能实现的功能。优点相对HTML安全性高使用简单,方便原创 2013-04-21 00:56:12 · 2081 阅读 · 0 评论 -
我的php学习笔记(三十七) PHP站内搜索:多关键字、加亮显示
一、SQL语句中的模糊查找 主要通过LIKE(不区分大小写)关键字实现模糊查找。LIKE条件一般用在指定搜索某字段的时候, 通过"%"或者" _" 通配符的作用实现模糊查找功能,通配符可以在字段前面也可以在后面或前后都有。只通过LIKE是无法实现模糊查找的,因此通配符的作用不可忽略。下面是三个实例:搜索以PHP开头:SELECT * FROM table WHE原创 2013-04-24 20:41:28 · 21686 阅读 · 0 评论 -
我的php学习笔记(三十五)PHP中正则表达式学习及应用(三)
一、运算顺序依然遵循从左到→右的运算规则其他符号优先级如下(1)( ) 圆括号因为是内存处理所以最高(2)* ? + { } 重复匹配内容其次(3)^ $ \b 边界处理第三(4)| 条件处理第四(5)最后按照运算顺序计算匹配二、模式修正符模式修正符是为正则表达式增强和补充的一个功能,使用在正则之外格式:/正则/U--U为模式修正符原创 2013-04-15 23:43:56 · 932 阅读 · 0 评论 -
我的php学习笔记(三十四)PHP中正则表达式学习及应用(二)
因为之前要开始项目的开展还有其他学校的课程,所以搁下了一个月没有更新,现在开始更新,会尽全力坚持,至少每周一次!正则表达式元字符* 匹配前一个内容的0次1次或多次例如:go*gle能匹配google. 匹配内容的0次1次或多次,但不包含回车换行例如:.实际是作为自己的内容,但是除了回车和换行符,即是说g.?gle能匹配gogle或者g0gle,就是说.能代表原创 2013-04-08 21:09:21 · 860 阅读 · 0 评论 -
一个PHP程序员应该掌握的10项技能!
很多学PHP的人一直也搞不清楚,一个PHP程序员和Java程序员或者是.net程序员有什么不同,告诉你,其实都一样!没有什么不同,下面的内容,就是针对一个Java程序员掌握的技能对比PHP来说的!告诉你,它们其实是一样的,不过是工具而已,没有高低贵贱之分。只不过你不熟练,不知道而已!1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知转载 2013-11-27 13:52:38 · 981 阅读 · 0 评论 -
PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题
在做PHP开发时,当你使用empty检查一个函数返回的结果时如果遇到下面的错误:Fatal error: Can't use function return value in write context例如:<?php echo empty(strlen('be-evil.org'));到PHP手册里面查看,在empty函数描述的地方有以下文字:原创 2013-12-09 09:01:46 · 2773 阅读 · 0 评论 -
PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)
本文并非直译用Php访问数据的时候,你选择MySQLi和PDO,在选择之前,你应该知道些什么呢?这篇文章将会介绍这两种方式的不同点,数据库的支持、稳定性、性能等问题。概述 PDOMySQLiDatabase support12 different driversMySQL onl转载 2013-12-12 09:32:43 · 19644 阅读 · 0 评论 -
php最佳实践----检测一个值是否为null或false
使用===操作符来检测null和布尔false值。PHP宽松的类型系统提供了许多不同的方法来检测一个变量的值。然而这也造成了很多问题。 使用==来检测一个值是否为null或false,如果该值实际上是一个空字符串或0,也会误报 为false。isset是检测一个变量是否有值, 而不是检测该值是否为null或false,因此在这里使用是不恰当的。is_null()函数能准确地检测转载 2014-06-30 11:52:07 · 2485 阅读 · 0 评论 -
php最佳实践----define() vs. const
使用define(),除非考虑到可读性、类常量、或关注微优化习惯上,在PHP中是使用define()函数来定义常量。但从某个时候开始,PHP中也能够使用const 关键字来声明常量了。那么当定义常量时,该使用哪种方式呢?答案在于这两种方法之间的区别。define()在执行期定义常量,而const在编译期定义常量。这样const就有轻微的速度优势, 但不值得考虑这个问题,除非转载 2014-06-27 06:41:45 · 939 阅读 · 0 评论 -
高性能PHP学习--基准测试技术
一、基准测试工具基准测试工具提供在各种不同的模拟用户请求发生时有关Web服务器响应的统计信息。它们允许我们模拟任意数量的请求Web服务器上某个特定Web文档的用户,更重要的是,它允许我们模拟任意数量的用户同时访问Web服务器上的文档(并发请求)。例如,每个工具提供的信息都与下列内容有关:1、响应一个请求所花费的总时间2、来自服务器的总响应大小3、Web服务器每秒可以处理的请求总原创 2014-05-22 16:55:00 · 2036 阅读 · 0 评论 -
linux下phpmyadmin报错phpmyadmin.pma_table_uiprefs doesn't exist解决方法
昨天在使用phpmyadmin的时候,出现了错误,错误提示如下:/etc/phpmyadmin/config.inc.php原创 2014-06-24 06:59:18 · 7966 阅读 · 3 评论 -
PHP最佳实践----phpass
在php的项目开发中,我都喜欢使用md5原创 2014-06-25 06:43:17 · 6005 阅读 · 0 评论 -
数组非数字键名引号的必要性
我看到过很多人操作数组的时候, 对于数组中的非数字键名不使用引号, $array[key] = $value;我可以理解有些人可能会觉得这样的代码很”整洁”, 并且也能正常执行.更甚至,如果他很”幸运的”php配置的好:error_reporting = ~E_NOTICE他也许永远都沉浸在自己的”整洁”风格中, 看不到任何的NOTICE提示, 也不会意识到,转载 2014-05-19 18:22:30 · 811 阅读 · 0 评论 -
PHP解释器引擎执行流程
这里将介绍引擎内部执行一个PHP脚本的流程,以cli SAPI为例子来对流程中核心的部分做简单介绍,省去一些初始化及清理操作。 cli(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一转载 2014-04-26 19:31:48 · 1942 阅读 · 0 评论 -
trigger_error使用方法
trigger_error(PHP 4 >= 4.0.1, PHP 5)trigger_error -- 产生用户级别的 错误/警告/注意 信息说明bool trigger_error ( string error_msg [, int error_type])在脚本中用户输入数据的位置,当用户的输入无效时触发错误的很有用的。使用trigge转载 2013-12-25 23:48:57 · 6934 阅读 · 0 评论 -
句柄和指针的区别(php资源类型)
群里有人问,你这个博客叫 lnmp,是专注于php的,为啥要有这篇文章了?我们知道在php中,至少在编码时,programmer是不会显实的去操作指针的,更何况句柄,有的人甚至都不知句柄为何物?我给的解释是:经常在群里看到有人问php中的资源类型是什么玩意,也打印出来到底看看这什么东西,可惜只得到了一个十进制整数而已!其实这就是句柄!那是什么是句柄?他和指针有什么异同?下转载 2013-12-18 22:41:11 · 4204 阅读 · 0 评论 -
在php使用PDO类查询Mysql
在我的PHP开发过程中,数据库的采用都是使用mysql数据库,与数据库有关的操作基本上都是使用php中的mysql扩展函数,例如mysql_query,mysql_connect等函数,使用这些传统的方法来连接查询数据库时,个人觉得有两个弊端,一是没有扩展性,就是只能用在mysql数据库中,如果要更换数据库的之后,使用的PHP扩展函数不同,如果在开发过程中要更换数据库,那么所有与数据库有关的操作都原创 2013-12-12 11:03:41 · 5981 阅读 · 0 评论 -
PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI']$_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 三者非常相似,返回的都是与当前 URL 或 PHP 程序文件相关的信息:$_SERVER['P转载 2013-12-28 20:47:43 · 903 阅读 · 0 评论 -
创建高安全性PHP网站的几个实用要点
大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问题。技巧1:使用合适的错误报告一般在开发过程中,很多程序员总是忘了制作程序错误报告,这是极大的错误,因为恰当的错误报告不仅仅是最好的调试工具,也是极佳的安全漏洞检测工具,这能让你把应用转载 2013-12-05 10:06:27 · 703 阅读 · 0 评论 -
我的php学习笔记(三十)PHP5中图片验证码的制作(上)
在大多数网站的登录系统中,为了防止一些恶意注册的用户,往往需要人们输入验证码登录或者注册,所以制作一个验证码的功能很重要。1、启用PHP中GD库GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。php中的GD库需要启用的,如果使用的是wampseve的话就点击php原创 2013-02-27 20:58:24 · 1520 阅读 · 0 评论 -
我的php学习笔记(三十二)PHP5文字图片混合水印与缩略图
PHP水印原理和流程原始图片->载入到php->php初始化->水印处理->生成新图->缩略图ImageCreateFrom* 图片载入函数ImageCreateFrom* 载入PHP是一个将图片编码转成PHP可识别的编码的过程,它可以载入多种格式的图片,如jpeg,gif,png,wbmp,可以根据图片的格式来载入。使用格式:imagecreatefromgif('1.j原创 2013-02-28 19:02:41 · 1099 阅读 · 0 评论 -
我的php学习笔记(十七)php的面向对象开发(四)
当一个类的功能和属性无法满足用户的需求时,就需要使用继承。继承的性质是继承后的类(子类)拥有被继承的类(父类或基类)的所有属性和方法,另外,子类还可以添加额外的属性和功能,使得类的功能更加完善。继承所使用的关键字:extends继承规则:单一继承,单向继承,避免子类的方法和属性与父类重名。class A {function print() {return "hehe";}原创 2013-02-21 17:29:43 · 437 阅读 · 0 评论 -
我的php学习笔记(十六)php的面向对象开发(三)
类的封装和应用封装是类的一大特点之一,封装是把一些属性和功能隐藏起来,从而使类得到保护和安全。将类进行封装之后,在以后使用的过程中很方便。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。封装关键字public:表示全局,类的内部外部和子类都可以访问;protected:表示受保护的,只有本类或子类或父类中原创 2013-02-19 10:16:32 · 402 阅读 · 0 评论 -
我的php学习笔记(十三)PHP小偷程序原理和实例
一、正则表达式:在某些应用中,往往有时候需要根据一定的规则来匹配(查找)确认一些字符串,如要求用户输入的 QQ 号码为数字且至少 5 位。用于描述这些规则的工具就是正则表达式。二、正则表达式函数ereg(),eregi();本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string原创 2013-02-02 18:35:41 · 807 阅读 · 0 评论 -
我的php学习笔记(十二)php生产HTML文件原理
php部分文件操作函数1、fopenfopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。fopen(filename,mode,include_path,context);参数描述filename必需。规定要打开的文件或 URL。mode必需。规定要求到该文件原创 2013-02-01 20:16:02 · 576 阅读 · 0 评论 -
我的php学习笔记(十一)php上传原理及其应用
一、form标签中的enctype属性 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,使用 "multipart/form-data"。 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。二、$_FILES[]系统函数将获取到的内容转换成原创 2013-01-31 21:55:51 · 584 阅读 · 0 评论 -
我的php学习笔记(十) php+MySQL分页原理
一、SQL语句中的limit用法SELECT * FROM table ... limit 开始位置,操作条数参数必须是整数常量。开始位置从0开始计数,第一页就是参数0,操作条数是需要操作的内容的数量,每一页显示多少条。二、分页的一种公式1.分页原理:就是将数据库里面的结果集,分成一段一段的来显示。2.需要的条件:需要知道怎么分段,以及当前在第几段。(每页有几条,当前在原创 2013-01-30 22:33:03 · 627 阅读 · 0 评论 -
我的php学习笔记(九)学习php+MySQL留言板(下)
提交表单Javascript验证在提交内容时,有些内容不允许为空,这时候需要验证,可以通过javascript来验证或者通过php来验证。可以通过在表单中嵌入javascript脚本来验证。此form标签先执行onsubmit语句,如果返回值为1,则执行此表单,返回为0则不执行。str_replace()替换函数格式:str_replace(被替换的值,替换的值,被原创 2013-01-28 22:38:32 · 850 阅读 · 0 评论 -
我的php学习笔记(七)MySQL在php中的应用
php与mysql建立连接 mysql_connect("主机","用户名","密码"):打开MySQL链接mysql_select_db("数据库名",连接标示符):打开一个数据库标示符的意思是现在连接的数据库主机。可写可不写,如果不做特别声明,则默认为打开上一次的连接。执行一个SQL语句mysql_squery(SQL语句,连接标示符);根据连接标示符向该数据库服务原创 2013-01-24 23:30:12 · 719 阅读 · 0 评论 -
我的php学习笔记(八)学习制作php+MySQL留言板(上)
一、php里的页面相互调用,就是同一个project里几个php文件相互调用1、require与require_once();2、include与include_once();require这个通常放在程序的最前面,php程序在执行前,就会先读入require所指定引入的文件,如果出现错误的话那么这个错误是致命的。include标签可以放在php程序的任何一个位置,php程序在执行到该原创 2013-01-26 22:31:11 · 1152 阅读 · 0 评论 -
我的Php学习笔记(六)Mysql简介和创建新的数据库 常用的SQL语句
MySQL,是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一原创 2013-01-23 22:42:25 · 3586 阅读 · 0 评论