PHP和MYSQL Web开发(一)
时间:2010-10-11 来源:heartofrong
第一章 入门
1.php标记
php标记有4种风格,推荐使用XML风格:<?php ?>
注释:多行/* */,单行//
2.访问表单变量
PHP的变量都是以$符号开始。有3种风格可以访问表单变量
- $tireqty //short style
- $_POST[‘tireqty’] //medium style
- $HTTP_POST_VARS[‘tireqty’] //long style
其中tireqty是表单域的name值,推荐使用中等风格!(一般是在接受网页中这样赋值:$tireqty = $_POST[‘tireqty’])
3.字符串的连接
使用“.”来连接字符串。如:echo $tireqty.’tires<br />’;
4.标识符
- 由字母、数字、下划线组成,且不能以数字开头
- 区分大小写,但是函数名称不区分大小写!!
5.变量类型
基本数据类型:Integer, Float, String, Boolean, Array, Object
特殊类型:NULL(没有被赋值、已经被重置或者被赋值为NULL), resouce(特定的内置函数)
6.类型强度和类型转换
PHP是一种弱类型语言,变量的类型由赋给变量的值确定,也就是说变量的类型可以改变
类型转换可以通过casting来完成。如:$fvar = (float)$ivar
7.可变变量
$varname = ‘tireqty’;
$$varname = 5;
等价于$tireqty = 5;
8.常量
声明:define(‘PRICE’, 10);
使用:echo PRICE;//不需要$号
php预定义了很多常量,可以通过phpinfo()命令了解。常量只能保存boolean,integer,float或者string(都是标量类型)
9.变量的作用域
PHP有6项基本的作用域:
- 内置超级全局变量,如$_POST,$_GET等
- 常量,全局可见
- 脚本中声明全部变量
- 函数内部声明全部变量
- 函数内部声明为静态的变量,只能在函数中使用,但可以保持该值
- 函数内部声明为普通的变量,只能在函数中使用,值不能保存
10.操作符
一些特别之处:
- 引用操作符:$a = 5; $b = &$a; $a = 7;//$b will be 7
- 重置:unset($a),破坏了$a与内存中值的连接
- ===,同js
11.测试变量类型、状态
gettype和settype函数可以得到变量类型和改变变量类型,还有一些以is开头的函数
isset测试变量是否存在,unset销毁变量,empty检查变量是否存在,以及非0非空。
第二章 数据的存储和检索(文件)
1.打开文件
fopen()函数,有两个参数,文件地址和文件模式(读写)。
2.写文件
fwrite()函数,三个参数,文件指针,写入内容和内容长度(可选)。
3.关闭文件
fclose()函数,一个参数,文件指针
4.其他一些文件函数
- feof(), 检查文件是否读完。如:while(!feof($fp))
- fgets,fgetss,fgetcsv,每次读取一行数据。用法略有不同
- readfile, fpassthru, file,读取整个文件
- fgets, 读取一个字符
- fread, 读取任意长度
- file_exists, 文件是否存在
- filesize, 查看文件大小
- unlink,删除文件
- rewind, fseek, ftell, 在文件中定位
- flock, 文件锁定
第三章 使用数组
1.可以通过range函数初始化数组,如:$number = range(1,10,2),1到10之间的奇数数组(2是步长)
2.相关数组,$prices = array( ‘Tires’=>100 ‘Oil’=>10 ‘Spark’=>4 );echo $price[‘Tires’];
3.foreach循环
foreach ($prices as $key =>$value)
echo $key.$value;
4.each结构
while( $element = each($prices))
{
echo $element[‘key’].$elemet[‘value’];
}
5.list结构
while( list($product, $price) = each($prices))
{
echo $product.$price;
}
注意:当使用each结构时,数组将记录当前元素。如果希望当前脚本中两次使用该数组,必须使用reset函数将当前元素重新设置到数组开始处。
6.数组排序
sort函数:正常排序(ascii码)
asort和ksort为相关数组排序
反向排序:rsort,arsort, krsort
7.自定义排序
usort函数,有两个参数,排序数组和排序规则函数
8.随机排序
shuffle函数,shuffle($prices)
array_reverse,反向排序
9.在数组中浏览
each, current, reset, end, next, pos, prev
10.最数组的每一个元素应用任何函数
array_walk(),有三个参数,数组,处理函数和处理参数(可选)
11.统计数组元素个数
count和sizeof差不多,array_count_values则会返回一个数组,记录每个元素出现的次数
12.将数组转换成标量变量
extract()函数,通过一个数组创建一系列的标量变量,变量的名称必须是关键字的名称,而变量值是数组中的值。
可能会出现变量名冲突的情况,可以通过指定extract_type来解决
第四章 字符串操作与正则
1.字符串的格式化
- trim,chop,ltrim,rtrim,清除多余空格
- nl2br,将换行转换成br标识符
- printf,格式输出
- 格式化字符串以便存储,addslashes和stripslashes。某些字符在存入数据库之前需要进行转换,否则会视为控制字符
2.字符串的连接和分割
- explode,指定分隔符分割字符串,得到数组,implode则相反。join相似
- substr,返回字符串的子字符串的拷贝
- strtok,没看明白。。。。
3.字符串比较
- 排序,strcmp。strcasecmp,忽略大小写。strnatcmp,自然排序
- strlen,查看字符串长度
- 字符串中查找字符串,strstr。stristr,忽略大小写。
- strpos,查找子字符串的位置。strrpos,从后查找
- str_replace, substr_replace, 替换子字符串
4.正则
规则没什么特别之处。用处及用法:
- 查找子字符串:ereg,eregi
- 替换:erge_replace, eregi_replace
- 分割:split
注意:正则表达式函数运行效率要低于字符串函数(同样的功能)