• 1. PHP 开发与应用
  • 2. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 3. 什么是PHP?PHP - Hypertext Preprocessor PHP的特点 脚本语言 速度快 开源 支持各种流行的数据库 跨平台、支持各种流行的WEB服务器 支持面向对象
  • 4. PHP开发工具Zend Studio VS.PHP for Visual Studio
  • 5. 搭建开发环境IIS 7 PHP 5.3.8 VC9 x86 http://windows.php.net/download/ MySQL 5.5.8 http://www.mysql.com/downloads/mysql/ Zend Studio 8.0 http://www.zend.com
  • 6. 检查IIS组件是否已安装IIS是Windows安装时的可选组件,所以需要选确认IIS是否有安装,如果没有,则要先安装IIS。
  • 7. 安装PHP
  • 8. 验证PHP的安装在C:\InetPub\wwwroot\目录中建立一个名为phpinfo.php的文件 在文件中添加如下内容:
  • 9. 安装MySQL
  • 10. 安装MySQL WorkBench
  • 11. 安装Zend Studio
  • 12. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 13. Hello PHP
  • 14. 输出函数print(string) print(“Hello world!”) print(‘Hello world!’) echo(string) echo(“Hello world!”); echo(‘Hello world!’); printf(format,arg1,arg2,…) printf("%s的工资是%.2f元
    ","sve",10000); printf("%s的工资是%2\$.2f元,整数部分为%2\$u元。","sve",10000.5);
  • 15. printf的格式化指示符符号描述%b显示为二进制数字%c显示为数字对应的ASCII字符%d显示为带符号的十进制数字%f显示为浮点数%o显示为八进制数%s显示为字符串%x显示为小写形式的十六进制数%X显示为大写形式的十六进制数
  • 16. 变量和常量PHP 标识符命名规则 必须以字母或下划线开头 只能包含字母、数字以及下划线 区分大小写 变量 以$符号开头 在给变量赋值之前不需要声明变量 不需要显式声明变量的数据类型(弱类型) 常量 define(string name, mixed value[, bool case_insensitive])
  • 17. 数据类型布尔、整型、浮点型、字符串 布尔值以0代表False,非0为True 字符串连接运算符“.” 字符串中如果有出现“$”号,必须使用转义符号(“\$”)
  • 18. 转义符号 使用单引号界定的字符号不执行转义以变量替换 字符串格式化函数 sfprinf(string format[, mixed arguments) 把格式化的字符串写写入一个变量中 字符中转义和格式化转义符号描述转义符号描述\n换行符\r回车\t水平制表符\\反斜杠\$美元符号\”双引号\x[0-9A-F]{1,2}十六进制\[0-7]{1,3}八进制
  • 19. 类型转换 类型函数 string gettype(mixed var) bool settype(mixed var,string type) is_XXX 系列函数 自动类型转换类型转换转换操作符转换为转换操作符转换为(bool)或(boolean)布尔值(string)字符串(int)或(integer)整型(array)数组(real)或(double)或(float)浮点数(object)对象
  • 20. PHP中的循环while do…while for foreach foreach( array as value){}
  • 21. PHP中的数组数字键的数组 关联键的数组 多维数组
  • 22. 数组操作Ilist函数提取数组中的多个值 range函数生成值的序列 array_unshift函数在数组头部插入元素 array_push函数在数组尾部插入元素 array_shift函数在数组头部删除并返回元素 array_pop函数在数组尾部删除并返回元素
  • 23. 数组操作IIin_array函数判断数组中是否存在指定的元素 array_key_exists函数判断数组中是否存在指定的键 array_search函数返回数组中指定元素的键,如果不存在则返回 FALSE array_keys函数返回数组的键的数组 array_values函数返回数组的元素的数组
  • 24. 遍历数组key函数返回数组当前指针所在的位置的键 current函数返回数组当前指针所在的位置的元素 each函数返回数组当前指针所在的位置的键值对 next函数将指针移到下一个位置并返回下一个位置的元素 prev函数将指针移到上一个位置并返回上一个位置的元素 reset函数将指针移到第一个元素的位置并返回第一个元素 end函数将指针移到最后一个元素的位置并返回最后一个元素 array_walk函数依次将数组各元素传递给一个自定义函数
  • 25. 数组计数和排序count函数返回数组的元素个数 array_count_values函数返回数组中各元素在数组中出现相同元素的次数 array_unique函数返回去除掉重复元素后的子数组 array_reverse函数对数组进行反转 array_flip函数对数组的键和值进行置换 sort和asort函数对数组进行排序 rsort和arsort函数对数组进行逆序排序 ksort和rksort函数按键对数组进行(逆序)排序 usort函数可根据用户自定义规则对数组进行排序
  • 26. 合并、拆分数组array_merge函数将多个数组合并到一起,遇到相同键时覆盖旧的值 array_merge_recursive函数将多个数组合并到一起,遇到相同键时构建子数组 array_combine函数将两个一维数组组装成一个关联键数组 array_slice函数返回数组中指定范围的元素
  • 27. 函数function 函数名(参数列表) 按值传递 按引用传递 指定参数的默认值 从函数里返回值 函数变量 变量作用域 全局变量 静态变量
  • 28. 文件包含include(string url) include_once(string url) require(string url) require_once(string url) include_path配置 set_include_path(string path) allow_url_fopen配置
  • 29. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 30. 读取请求字符串的数据使用 $_GET 全局数组获取以 GET 方式传递到服务器的数据
  • 31. 读取表单的的数据使用 $_POST 全局数组获取以 POST 方式提交到服务器的数据
  • 32. 处理文件上传使用 $_FILES 全局数组获取用户上传到服务器的文件 $_FILES 数组是一个二维数组,第一维是上传文件标签的 name 属性值,每二维的内容如下 name – 客户端上传的文件的原名 type – 文件的 MIME 类型 size – 以字节为单位的文件大小 tmp_name – 文件在服务器的临时文件名 error – 错误代码,UPLOAD_ERR_OK 表示文件成功上传 文件上传的设置 file_uploads – 是否允许通过 HTTP 上传文件,布尔值 upload_max_filesize – 以字节为单位的文件大小限制 upload_tmp_dir – 服务器保存上传文件的临时目录
  • 33. 访问会话数据使用 $_SESSION 全局数组可访问会话状态中的数据 会话状态的相关函数 session_start() session_destroy() isset($_SESSION[key]) unset($_SESSION[key]) string session_id([string id])
  • 34. 访问 COOKIE 数据使用 $_COOKIE 访问 COOKIE 的数据 设置 COOKIE 的值 setcookie(string name, string value, int seconds, string path, string domain, bool secure, bool httponly) 删除 COOKIE 的值 setcookie( name, “”, time() – 3600 )
  • 35. 访问环境信息$_REQUEST 包含 $_GET、$_POST、$_COOKIE 全局数组的所有内容 $_SERVER 用于访问服务器的环境变量 $_ENV 用于访问系统的环境变量
  • 36. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 37. MySQL Workbench创建数据库 创建数据表 插入示例数据
  • 38. PHP 中的 MySQL 配置PHP.ini 中的 MySQL 配置 mysql.allow_persistent – 是否允许 MySQL 的持久连接 mysql.max_persistent – 每个进程中最大持久连接数,默认为-1 mysql.max_links – 每个进程的最大连接数,默认为-1 mysql.trace_mode – 跟踪模式,默认为0 mysql.default_port – 默认的数据库服务器端口号 mysql.default_socket mysql.default_host – 默认的服务器地址 mysql.default_user – 默认使用的登录名 mysql.default_password – 默认使用的密码 mysql.connect_timeout – 连接超时秒数,默认60秒
  • 39. 建立数据库连接打开数据库连接 mysql_connect(server,user,pwd,newlink) newlink – 强制建立新连接 连接成功则返回连接标识符,失败则返回 FLASE mysql_pconnect(server,user,pwd) 关闭数据库连接 bool mysql_close(link_identifier) 选择数据库 bool mysql_select_db(database,connection) 读取 MySQL 的错误信息 mysql_error()
  • 40. 执行查询mysql_query – 执行 SQL 语句 mysql_affected_rows – 返回前一次操作所影响的行数 mysql_unbuffered_query – 执行不带缓存的查询 mysql_fetch_object – 返回结果集中的行 mysql_fetch_array – 返回结果集中的行,一次一行 mysql_fetch_field – 返回结果集中指定的列信息对象 mysql_data_seek – 移动结果集的指针 mysql_free_result – 释放结果集占用的内存 mysql_insert_id – 返回上一步插入操作产生的 ID mysql_num_rows – 返回结果集中的行数 mysql_num_fields – 返回结果集的字段数 mysql_list_dbs – 列出 MySQL 服务器的所有数据库
  • 41. 示例 - 增、删、改、查
  • 42. 示例 – 通用数据表
  • 43. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 44. 类和接口的定义class 关键字 interface 关键字 abstract 关键字 extends 关键字 implements 关键字 new 关键字 注意 PHP 不支持方法和操作符重载 PHP 不支持多重继承
  • 45. 成员的修饰符和运算符成员修饰符 public private protected final abstract static 运算符 :: ->
  • 46. 构造函数与析构函数构造函数 与类同名的方法被认为是构造函数 __construct 方法 析构函数 __destruct 方法 在子类的构造函数中不会自动调用父类的构造函数
  • 47. MySQL 实用工具类
  • 48. 目录PHP 简介及环境搭建 PHP 语法基础 处理 WEB 请求 操作 MySQL 数据库 面向对象编程 正则表达式和文件操作
  • 49. 正则表达式正则表达式的作用 字符串格式较验 从字符串中按模式匹配子串 从字符串中按模式替换子串内容 按模式分割字符串 PHP 支持的正则表达式 POSIX 风格的正则表达式(PHP 6将不再支持) PCRE 风格的正则表达式(兼容 Perl)
  • 50. PHP 的 PCRE 函数preg_match – 进行正则表达式匹配 preg_match_all – 进行全局正则表达式匹配 preg_grep – 从指定数组中提取所有与模式匹配的数组元素 preg_quote – 转义正则表达式字符 preg_replace – 执行正则表达式的匹配和替换 preg_replace_callback – 使用回调函数执行正则表达式的匹配和替换 preg_split – 用正则表达式分割字符串 preg_filter – 执行正则表达式的匹配和替换 preg_last_error – 返回上一次正则表达式匹配时发生错误
  • 51. 匹配规则符号含义符号含义^断言目标的开头$断言目标的结尾.除换行符号外的任意一个字符|或者()分组[]定义字符类\d十进制字符\D非十进制字符\s空白字符\S非空白字符\w任意字母、数字或下划线\W非字母、数字或下划线\b字分界线\B非字分界线符号含义符号含义?出现0或1次*出现0或多次+出现1或多次{m}出现m次{m,n}出现m到n次{m,}出现至少m次
  • 52. preg_matchint preg_match( string $pattern, string $subject [, array $matches [, int $flags [, int $offset] ] ] ) pattern – 要匹配的模式 subject – 断言目标 matches – 保存匹配结果的数组 flags – 指示是否设置偏移量,可用的值只有PREG_OFFSET_CAPTURE offset – 匹配开始位置的偏移量 未匹配到数据时返回 0,否则返回 1
  • 53. preg_match_allint preg_match_all( string $pattern, string $subject [, array $matches] ) pattern – 要匹配的模式 subject – 断言目标 matches – 保存匹配结果的数组 返回匹配到的结果的数量
  • 54. preg_greparray preg_grep(string $pattern, array $input [, int $flags] ) pattern – 要匹配的模式 input – 断言目标 flags – 反向标识,可取值是 PREG_GREP_INVERT
  • 55. preg_replacemixed preg_replace( mixed $pattern, mixed $replacement, mixed $subject) $pattern – 要匹配的模式或模式数组 $replacement – 用于替换的字符串或字符串数组 $subject – 替换目标
  • 56. 文件操作resource fopen( string $filename, string $mode ) filename – 要打开的文件的 URL mode – 打开文件的模式 r 只读 r+ 读写 w 只写(覆盖模式) w+ 读写 a 只写(追加模式) a+ 读写 x 创建并写入 x+ 创建并读写 bool fclose( resource $handle ) bool feof( resource $handle ) string fgets( resource $handle [, int $length]) string fgetc( resource $handle ) int fseek( resource $handle, int $offset [, int $whence]) whence -> SEEK_SET, SEEK_CUR, SEEK_END int fwrite( resource $handle, string $content )
  • 57. (本页无文本内容)