php开发典型模块大全读书笔记
第二章 php基础
2.1 .1 变量间的赋值,两个变量使用各自的内存,互不干扰。2
2.1.2 引用赋值 &
2.2 流程控制语句
2.2.1 条件控制语句
foreach语句用于其他数据类型或未初始化的变量时会产生错误,使用is_array() 函数来判断变量是否为数组类型。
特殊流程控制的书写格式 :号 代替左边的大括号 endif endwhile foreach endswitch代替右边的大括号。
2.3 Cookie 和Session
2.3.1 Cookie
文件的命令格式如下
用户名@网站地址[数字].txt,失效后,文件将自动删除
如果设置了Cookie的到期时间,将在关闭浏览器时自动删除cookie数据。
如果cookie不设定过期时间,它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就消失,这种Cookie被称为会话Cookie,其一般不保寸在硬盘上,而是保存在内
存中。
<?php
if(!isset($_COOKIE["php_cookie"])){ //如果Cookie文件是否存在,如果不存在
setcookie("php_cookie",date("y-m-d H:i:s")); //设置一个Cookie变量
echo "欢迎您第一次访问网站!"; //输出字符串
}else{ //如果Cookie存在
setcookie("php_cookie",date("y-m-d H:i:s"),time()+60); //设置带Cookie失效时间的变量
echo "您上次访问网站的时间为:".$_COOKIE["php_cookie"]; //输出上次访问网站的时间
echo "<br>"; //输出回车符
}
echo "您本次访问网站的时间为: ".date("y-m-d H:i:s"); //输出当前的访问时间
?>
结果:
您上次访问网站的时间为:12-07-10 15:03:04
您本次访问网站的时间为: 12-07-10 15:06:41
浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持最大容量为4KB,每个域名最多支持20个Cookie,达到限制时候,浏览器会随机的删除Cookie。
2.3.2 Session
启动会话两种方式 session_start(); session_register()会登录一个变量来隐含地启动会话。但是要求register_globals指令为on,然后重新启动Apache服务器。
删除单个会话 unset($_COOKIE["php_cookie"]); 注意使用该函数,数组中的元素不能省略,这样会禁止整个会话的功能,会将全局变量$_SESSION销毁,而且没有办法将
其恢复。
删除多个会话
S_SESSION=array();
结束当前会话
session_destroy();
2.4数组
2.4.2声明数组 array()函数;直接为数组元素赋值 []
2.4.3遍历数组 foreach()语句并非操作数据本身,而是操作数组的一份备份。list()和array()一样不是函数,而是一种语言结构。
while(list($name,$value)=each($_POST)){
if($name!="imageField_x" and $name!="imageField_y"){
echo "$name: $value<br>";
}
}
结果:
用户名: dasf
密码: adsf
each()函数用于返回当前指针位置的数组值,并将指针推进前一个位置,返回的数组包含4个键,键0和key包含键名;键1和value包含相应的数据。
2.5 日期和时间
获取当前的时间和日期 date(string format,int timestamp)
<?php
echo "DATE_ATOM = ".date(DATE_ATOM); //输出ATOM格式的日期
echo "<p>DATE_COOKIE = ".date(DATE_COOKIE); //输出HTTP Cookie格式的日期
echo "<p>DATE_ISO8601 = ".date(DATE_ISO8601); //输出iso8601格式的日期
echo "<p>DATE_RFC822 = ".date(DATE_RFC822); //输出RFC822格式的日期
echo "<p>DATE_RFC850 = ".date(DATE_RFC850); //输出RFC850格式的日期
echo "<p>DATE_RSS = ".date(DATE_RSS); //输出rss格式的日期
echo "<p>DATE_W3C = ".date(DATE_W3C); //输出w3c格式的日期
?>
DATE_ATOM = 2012-07-10T15:37:06+08:00
DATE_COOKIE = Tuesday, 10-Jul-12 15:37:06 GMT-8
DATE_ISO8601 = 2012-07-10T15:37:06+0800
DATE_RFC822 = Tue, 10 Jul 12 15:37:06 +0800
DATE_RFC850 = Tuesday, 10-Jul-12 15:37:06 GMT-8
DATE_RSS = Tue, 10 Jul 2012 15:37:06 +0800
DATE_W3C = 2012-07-10T15:37:06+08:00
输出格式化的日期和时间:
setlocale()函数可以改变php默认的本地化环境 en_US为美国本地化环境 chs简体中文 cht繁体中文。
strftime() 根据本地化环境设置来格式化输出日期和时间。
unix时间戳。数字时间戳服务 DTS digital time stamp service 是web网站安全服务项目之一。
mktime()将一根时间转换成UNIX的时间戳值
time()获取当前时间戳
系统时区设置 php.ini date.timezone=Asia/Hong_Kong;或者在应用程序中 date_default_timezone_set("Asia/Hong_Kong");
开发中遇到的日期和时间问题 例如比较 strtotime() 函数获取时间戳,它将任何英文文本的日期时间描述解析为UNIX时间戳
2.6 php字符串
双引号的内容是经过php的语法分析器解析过的,任何变量在双引号张都会被转换为它的值显示输出;而单引号的内容是“所见即所得”。
str_ireplace()函数,替换不区分大小写;str_replace()函数,区分大小写。
2.7 文件
resource fopen() 打开一个文件
bool fclose() 关闭文件
int readfile() 用于读入一个文件并将其写入到输出缓冲,如果出现错误则返回false;函数语法如下 int readfile(),使用此函数,不需要打开关闭文件,不许echo print,直接
写出文件路径即可。
array file() 函数也是读取整个文件的内容,只是将文件内容按行存放到数组里,包括换行符在内。
string file_get_contents() 将文件内容读入一个字符串,该函数适用于二进制对象,是将整个文件的内容读入到一个字符串中的首选方式。
fwrite还有个别名fputs()
file_put_contents()函数向文件中写入数据。
bool copy() 复制文件
bool rename() 重命名文件
bool unlink() 删除文件
int fileatime() return the last vist unix time
int filemtime() return the last change unix time
int filesize() return the file size
array pathinfo() 返回一个数组
string realpath() 返回文件的绝对路径
array stat() 返回一个数组,包括文件的相关信息。
$_FILES[filename][error] 存储了上传文件的结果,如果返回为0,说明文件上传成功
bool move_uploaded_file() 上传文件到指定位置。
2.8 OOP
包含OOA OOD OOP
继承:子类继承了父类所有的成员变量和方法,包括构造函数,这就是继承的实现;当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,php会
先调用子类的构造方法,当子类中没有时,php则去调用父类中的构造方法。
$this-> 伪变量 ::域操作符 来对其它不相关的类成员进行访问。