基础概念扫盲篇【记录】(持续更新)

PHP报错等级

线上配置:error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATE
值 常量 说明
1 E_ERROR 报告导致脚本终止运行的致命错误
2 E_WARNING 报告运行时的警告类错误(脚本不会终止运行)
4 E_PARSE 报告编译时的语法解析错误
8 E_NOTICE 报告通知类错误,常见,脚本可能会产生错误(如:使用了未定义的变量)
32767 E_ALL 报告所有的可能出现的错误(不同的PHP版本,常量E_ALL的值也可能不同)
E_STRICT 其不包含在 E_ALL 之中,例如它会警告你使用了将被废弃的函数。
E_DEPRECATED 意思是“不推荐”,与E_STRICT类似

PHP对大小写敏感问题

  1. 大小写区分问题
    abc=abcd;echo a b c = ‘ a b c d ′ ; e c h o abc; //输出 ‘abcd’
    echo $aBc; //无输出
    函数名、方法名、类名不区分大小写,但最好按规则来

  2. 大小写命名问题

    类名默认单词字母大写,ShwoList.class.php
    方法: showList()
    变量: $showList;
    常量名默认区分大小写,通常都写为大写
    魔术常量不区分大小写,推荐大写

语法认知:

赋值时的渐变写法:
  • $bool && $result =”赋值”;
    【等同于】=> if( $bool ){ $result =”赋值” } ;
  • $result=$bool?”赋值1”:”赋值2”;
    【等同于】=> if( \$bool ){ \$result =”赋值1”}else{ \$result =”赋值2”} ;

mb打头的函数

由来:都是PHP5最新添加的,
优点:处理速度能更快,功能更强大一些
选择:没有非说得用mb函数的说法,合适的就是最好的
举例:比如说 mb_substr用来截取中文时不会把一个汉字截断的现象
                      substr更适合截取英文内容
配置:  但php默认是不支持的,需要在配置中解开
            ;extension=php_mbstring.dll     
对比:mt_rand  mt_srand

php的几个全局变量

$_SESSION
$_COOKIE
$_POST
$_GET
$_REQUEST  $_GET,$_POST 和 $_COOKIE 的数组。
$_SERVER
$_FILES
$_ENV

PHP常量的区别CONST DEFINE

(1).const可在类中使用,define不能。局部和全局的区别吧
(2).const不能在条件语句中定义常量。
(3).CONST 比define加载快
(4). define可以采用表达式作为名称。

const存放在数据段中,与static相同 访问用 类名:: self::

php的路径解释

一。物理路径,它就是指硬盘上文件的路径,比如下面的文件位置表示方法:
d:\wwwroot\html\a.html
二。相对路径
链接到上级目录中的文件
三。绝对路径,它就是带有网址的路径。比如你有一个域名www.test.com,其域名指向 d:\wwwroot,
链接到a.html
四。根目录,去掉绝对路径前面的域名就是根目录,所以它可以理解为是网站的最上层目录。它的表示方法如下:
链接到a.html

each与list的用法(PHP学习)

//each
//返回目标数组中第一个【值/下标】,并且【下标】向后移动一位
for(; tmp=each( t m p = e a c h ( arr);){
echo tmp[0], , t m p [ 0 ] , ′   ′ , tmp[1],’
’;
}
reset( arr);//list// list( a r r ) ; / / l i s t / /   l i s t ( a, b, b , c) 规定: a= a = arr[0], b= b = arr[1], c= c = arr[2]…… [以此类推]
arr=array(1,2,3,4);for(;list( a r r = a r r a y ( 1 , 2 , 3 , 4 ) ; f o r ( ; l i s t ( k, v)=each( v ) = e a c h ( arr);){
echo k, , k , ′   ′ , v,’
’;
}

each把索引数组的下标和值赋值给一个数组 tmp01list( t m p 有 【 0 】 【 1 】 l i s t ( a, b) b ) a= tmp[0], t m p [ 0 ] , b=$tmp[1]
所以list与each连用,可以把数组中的下标和值分别输出,但要注意 reset 数组的指针

提高使用效率

缓存技术,把一定时间没变过的放入缓存,减少访问系统开销
    SQL缓存:简历数据表,启动mysql数据 insert select update
    文件缓存:fopen,fwrite,fread
    内存缓存:安装缓存软件

SQL预处理技术

安全:

URL解析模式3,使使用者不知道文档结构
SQL事务模式:

- Smarty

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

HTML,XML,XHTML

HTML和XML:他们两个都是标记语言(ML),一个是超文本置标语言,一个是可扩展置标语言。
他们的不同之处:
1可扩展性:HTML不具备扩展性,而XML是原标记语言,可以用于定义新的标记语言。
2侧重点: HTML侧重于如何表现信息,而XML是侧重于如何结构化的描述信息。
3语法要求: HTML不要求标记的嵌套,配对等,不要求标记间具有一定的顺序,而XML则是严格要求嵌套,配对,遵循DTD的树形结构。
4可读性和维护性:HTML难于阅读维护,而XML结构清晰,便于阅读维护
5数据和显示关系:HTML的内容描述和显示整合唯一,而XML则是相分离的
最后一点就是他们的编辑浏览工具了,HTML有一堆的编辑浏览工具,而XML尚不成熟。
至于XHTML,是介于HTML和XML之间的标准,它是让HTML符合XML语法规范的一种规定。不过现在的浏览器对XHTML的支持并不是很好。

Javascript,jQuery, Ajax

JavaScript包括Ajax
jQuery是一个JavaScript轻量级框架
学习Ajax很简单,前提是你会JavaScript基础,但是真正的运用好Ajax不简单,要考虑很多问题,比如怎么设置浏览器导航按钮,怎么防止请求冲突,怎么提高安全,怎么平稳过渡等等的数多问题
推荐书籍
《JavaScript基础教程》第六版
《JavaScript高级程序设计》
《JavaScript DOM高级程序设计》
《Ajax实战》
《Ajax高级程序设计》
《jQuery基础教程》第二版
《jQuery实战》

discuz 与phpwind

在我们想搭建论坛的时候,我们都会在论坛程序的选择上苦思冥想,难以下结论,到底选择那款系统,目前ASP论坛已经面临被淘汰的局面了.

PHP论坛是目前最盛行的,PHP论坛程序中当属Disduz和Phpwind最为出众,的确这两个系统都很优秀,很难说要选择哪一个,接下来,我们就为大家简单分析这两个论坛程序。

首先我们要说一下就是Discuz,目前使用最多的PHP论坛系统,是由北京康盛创想有限公司开发的一款PHP论坛代码,该产品已经被广泛应用于各大论坛,而且康盛公司旗下产品还有建站系统,博客系统,空间系统,是一款整合性非常强的系统,DISCUZ系统具有很强的负载能力,可以在繁忙的服务器环境下运行快速稳定的论坛,很大程度上节约了企业的成本,Discuz的打开速度明显要快,该产品附恶化国际化标准产品构架,具有很强的安全性和攻击防护,系统更新和补丁也推出很频繁,是国内首屈一指的PHP论坛系统。

接下来我们说一下Phpwind论坛,杭州德天信息技术有限公司的一款优秀论坛系统,是Discuz论坛强有力的挑战者,各项功能都不亚于discuz系统,在打开速度上比DZ更具优势,快捷、稳定、高效、成熟、稳定是这款论坛的特点,由于Phpwind论坛出道还比较晚,各项性能指标还不成熟,再加上互联网竞争日趋白热化,寻求强有力的支撑是一个公司发展的根本,去年,Phpwind被马云所在的阿里巴巴公司收购,这个土生土长的杭州互联网企业,再次与大公司接轨,发展前景自然不在话下。

要说这两款论坛,各有优缺点,我们使用的过程中发现,Discuz的伪静态也比Phpwind好的多,最起码简单明了,符合搜索引擎的标准,收录相对会更多一些,而Phpwind的伪静态比较长,这点不利于搜索引擎优化,打开速度上Phpwind稍占上风,其它的就是功能使用上了,Discuz后台操作比较简单,功能强大,非常适合新老站长使用,而Phpwind论坛的后台设计比较繁琐,相对操作比较复杂,但是功能不亚于discuz。 在搜索引擎的表现上来看,搜索引擎还是偏爱于discuz论坛系统,不管是在排名还是在收录上,discuz都占据了很大的优势。

memcache

  memcache是一套分布式的**高速缓存系统**,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以**提升网站的访问速度**,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。**开源**

MemCache的工作流程如下:
  • 先检查客户端的请求数据是否在memcache中,如有,直接把请求数据返回,不再对数据库进行任何操作;

  • 每次更新数据库的同时更新memcached中的数据,保证一致性;

  • 当分配给memcached内存空间用完之后,会使用LRU(Least Recently
    Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。

  • Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

总结:缓存在内存,减少数据库访问次数,提升访问速度。

Zend Optimizer

Zend Optimizer(以下简称ZO)用优化代码的方法来提高php应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。
我们在使用php的时候,会发现很多的php开源系统都是基于Zend Optimizer上的,所以我们需要先安装Zend Optimizer,这时候我们发现在php5.3之后是没有Zend Optimizer,但是有新的Zend Guard Loader,那我们就安装Zend Guard Loader就好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值