登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書

『簡體書』PHP 7从入门到精通(视频教学版)

書城自編碼: 2939620
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 刘增杰、张工厂
國際書號(ISBN): 9787302456254
出版社: 清华大学出版社
出版日期: 2016-12-01
版次: 1 印次: 1
頁數/字數: 444/736000
書度/開本: 16开 釘裝: 平装

售價:HK$ 118.5

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
供应链金融(第4版)
《 供应链金融(第4版) 》

售價:HK$ 113.9
人人都想当网红?新媒体与注意力博弈
《 人人都想当网红?新媒体与注意力博弈 》

售價:HK$ 78.2
君主、道学与宋王朝
《 君主、道学与宋王朝 》

售價:HK$ 90.9
李慈铭日记(全14册)
《 李慈铭日记(全14册) 》

售價:HK$ 3197.0
对话的力量,风靡全球的教练式沟通
《 对话的力量,风靡全球的教练式沟通 》

售價:HK$ 67.9
人的行为
《 人的行为 》

售價:HK$ 110.4
北京中轴线知识一点通
《 北京中轴线知识一点通 》

售價:HK$ 90.9
牛津世界历史研究指南
《 牛津世界历史研究指南 》

售價:HK$ 216.2

 

建議一齊購買:

+

HK$ 118.5
《Access 2013从零开始学(视频教学版)》
+

HK$ 147.0
《MySQL 5.7从入门到精通(视频教学版)》
+

HK$ 183.2
《发现与阐释:现代文学史料知见录》
+

HK$ 90.7
《C++从零开始学 视频教学版 配光盘》
+

HK$ 172.3
《精通HTML+CSS网页布局与样式(视频教学版)》
+

HK$ 182.9
《精通PHP+MySQL动态网站开发》
編輯推薦:
本书免费赠送配套源码、课件、教学视频和电子参考书,下载地址为:http:yun.baidu.coms1pKUnkzLPHP是一种*流行的通用脚本语言,特别适合于Web开发。 PHP快速、灵活、务实,广泛运用在大中小型网站的开发上。本书以零基础讲解为宗旨,以PHP 7为蓝本,用实例引导读者深入学习PHP编程的各项技术及实战技能。本书还讲解PHP与Web、XML、JavaScript、Ajax、MySQL、Zend框架等技术的交互方法,方便读者全面了解PHP编程技术。本书适合任何想学习PHP的人员无论你是否从事计算机相关行业、是否接触过PHP,都可以通过本书的学习快速、全面地掌握PHP开发方法和技巧。
內容簡介:
本书循序渐进地介绍了PHP 7开发动态网站的主要知识和技能,提供了大量的PHP应用实例供读者实践。每一章节都清晰讲述了代码作用及其编写思路,使读者能在*短时间内迅速掌握PHP的应用开发技能。
全书共23章,分别介绍了PHP 7的基本概念、PHP服务器环境配置、PHP的基本语法、PHP的语言结构、字符串和正则表达式、数组、时间和日期、面向对象编程、错误处理和异常处理、PHP与Web页面交互、文件与目录操作、图形图像处理、Cookie和会话管理、MySQL数据库基础、PHP操作MySQL数据库、PDO数据库抽象类库、JavaScript编程基础、PHP与XML技术、PHP与Ajax的综合应用、Smarty模板、Zend framework框架等,*后通过一个论坛系统实战案例和一个酒店管理系统实战案例,使读者进一步巩固所学的知识,提高综合实战能力。
本书既适合PHP的初学者以及广大网站开发人员阅读,也适合高等院校和培训学校相关专业的师生参考。
關於作者:
刘增杰,IT资深专家,从事行业十余年,出版多部作品。
目錄
目 录
第1章 初识PHP 1
1.1
PHP的来龙去脉 1
1.1.1
PHP的概念 1
1.1.2
PHP的发展历程 2
1.1.3
PHP的优势 2
1.2
PHP能干什么 3
1.3
PHP 7的新特点 4
1.4
PHP常用开发工具 6
1.4.1
PHP代码开发工具 6
1.4.2
网页设计工具 7
1.4.3
文本编辑工具 7
1.5 高手甜点 8
第2章 PHP 7服务器环境配置 9
2.1
PHP服务器概述 9
2.2 安装PHP 7前的准备工作 10
2.2.1
软硬件环境 10
2.2.2
获取PHP 7安装资源包 10
2.3
PHP 7 IIS服务器安装配置 12
2.3.1
IIS简介及其安装 12
2.3.2
PHP的安装 13
2.3.3
虚拟目录的设置 16
2.4
PHP 7 Apache服务器的环境搭建 17
2.4.1
Apache简介 17
2.4.2
关闭原有的网站服务器 18
2.4.3
安装Apache 18
2.4.4
将PHP与Apache建立关联 19
2.5 新手的福音PHP环境的集成软件 20
2.6 实战演练我的第一个PHP程序 23
2.7 高手甜点 24
第3章 PHP的基本语法 25
3.1
PHP标识符 25
3.1.1
短风格 25
3.1.2
script风格 26
3.1.3
ASP风格 26
3.2 编码规范 26
3.2.1
什么是编码规范 26
3.2.2
PHP中的编码规范 27
3.3 常 量 28
3.3.1
声明和使用常量 29
3.3.2
内置常量 29
3.4 变 量 31
3.4.1
PHP中的变量声明 31
3.4.2
可变变量与变量的引用 32
3.4.3
变量作用域 33
3.4.4
变量的销毁 36
3.5 数据类型 37
3.5.1
什么是类型 37
3.5.2
整型 38
3.5.3
浮点型 38
3.5.4
布尔型 38
3.5.5
字符串型 38
3.5.6
数组型 39
3.5.7
对象型 41
3.5.8
NULL型 42
3.5.9
资源类型 42
3.5.10
数据类型之间的相互转换 42
3.6 标量类型的声明 43
3.7 运算符 44
3.7.1
算术运算符 44
3.7.2
字符串运算符 45
3.7.3
赋值运算符 46
3.7.4
比较运算符 46
3.7.5
逻辑运算符 47
3.7.6
按位运算符 48
3.7.7
否定控制运算符 49
3.7.8
错误控制运算符 49
3.7.9
三元运算符 50
3.7.10
运算符的优先级和结合规则 50
3.8 表达式 50
3.9 实战演练创建多维数组
51
3.10
高手甜点 51
第4章 PHP的语言结构 53
4.1 内置函数 53
4.2 自定义函数 54
4.2.1
自定义和调用函数 54
4.2.2
向函数传递参数值 55
4.2.3
向函数传递参数引用 55
4.2.4
从函数中返回值 56
4.2.5
对函数的引用 57
4.2.6
对函数取消引用 58
4.3 包含文件 58
4.3.1
require和include 58
4.3.2
include_once和require_once 59
4.4 流程控制 60
4.4.1
条件控制结构 60
4.4.2
循环控制结构 65
4.5 实战演练1条件分支结构综合应用
72
4.6 实战演练2循环控制结构综合应用
73
4.7 高手甜点 74
第5章 字符串和正则表达式 75
5.1 字符串的单引号和双引号
75
5.2 字符串的连接符 77
5.3 字符串的基本操作 78
5.3.1
手动和自动转义字符串中的字符 78
5.3.2
计算字符串的长度 78
5.3.3
字符串单词统计 79
5.3.4
清理字符串中的空格 80
5.3.5
字符串的切分与组合 80
5.3.6
字符串子串的截取 81
5.3.7
字符串子串替换 82
5.3.8
字符串查找 83
5.3.9
大小写转换 84
5.4 什么是正则表达式 85
5.5 正则表达式语法规则 85
5.6 实战演练创建酒店系统在线订房表 90
5.7 高手甜点 93
第6章 PHP数组 94
6.1 什么是数组 94
6.2 数组的类型 95
6.2.1
数字索引数组 95
6.2.2
关联索引数组 96
6.3
PHP 常量数组 97
6.4 数组构造 97
6.4.1
一维数组 97
6.4.2
多维数组 97
6.5 遍历数组 99
6.5.1
遍历一维数字索引数组 99
6.5.2
遍历一维联合索引数组 100
6.5.3
遍历多维数组 101
6.6 数组排序 102
6.6.1
一维数组排序 102
6.6.2
多维数组排序 104
6.7 字符串与数组的转换 105
6.8 向数组中添加和删除元素
106
6.8.1
向数组中添加元素 106
6.8.2
从数组中删除元素 107
6.9 查询数组中指定元素 109
6.10
统计数组元素个数 110
6.11
删除数组中的重复元素 112
6.12
调换数组中的键值和元素值 113
6.13
实战演练数组的序列化 113
6.14
高手甜点 114
第7章 时间和日期 115
7.1 系统时区设置 115
7.1.1
时区划分 115
7.1.2
时区设置 116
7.2
PHP日期和时间函数 116
7.2.1
关于UNIX时间戳 116
7.2.2
获取当前时间戳 116
7.2.3
获取当前日期和时间 117
7.2.4
使用时间戳获取日期信息 118
7.2.5
检验日期的有效性 120
7.2.6
输出格式化时间戳的日期和时间 121
7.2.7
显示本地化的日期和时间 122
7.2.8
将日期和时间解析为UNIX时间戳 123
7.2.9
日期和时间在PHP和MySQL数据格式之间的转换 124
7.3 实战演练1比较两个时间的大小
124
7.4 实战演练2实现倒计时功能 125
7.5 高手甜点 126
第8章 面向对象编程 127
8.1 类和对象的介绍 127
8.2
PHP中类的操作 128
8.2.1
类的声明 128
8.2.2
成员属性 129
8.2.3
成员方法 129
8.2.4
类的实例化 130
8.2.5
访问类中的成员属性和方法 130
8.3 构造方法和析构方法 132
8.4 访问方法 134
8.5 类的继承 136
8.6 高级特性 137
8.6.1
静态属性和方法 137
8.6.2
final类和方法 138
8.7 抽象类和接口 139
8.7.1
抽象类 139
8.7.2
接口 140
8.8 面向对象的多态性 142
8.8.1
通过继承实现多态 142
8.8.2
通过接口实现多态 144
8.9 高手甜点 145
第9章 错误处理和异常处理 146
9.1 常见的错误和异常 146
9.2 错误处理 150
9.2.1
php.ini中的错误处理机制 150
9.2.2
应用DIE语句调试 150
9.2.3
自定义错误和错误触发器 151
9.2.4
错误记录 154
9.3 异常处理 155
9.3.1
异常的基本处理方法
155
9.3.2
自定义的异常处理器 157
9.3.3
处理多个异常 159
9.3.4
设置顶层异常处理器 160
9.4 实战演练处理异常或错误
161
9.5 高手甜点 162
第10章 PHP与Web页面交互 164
10.1
使用动态内容 164
10.2
表单与PHP 165
10.3
表单设计 166
10.3.1
表单基本结构 166
10.3.2
文本框 166
10.3.3
选项框 167
10.3.4
单选按钮 169
10.3.5
下拉列表 170
10.3.6
重置按钮 171
10.3.7
提交按钮 172
10.4
传递数据的两种方法 174
10.4.1
用POST方式传递数据 174
10.4.2
用GET方式传递数据 175
10.5
PHP获取表单传递数据的方法 176
10.6
PHP对URL传递的参数进行编码 176
10.7
实战演练PHP与Web表单的综合应用 177
10.8
高手甜点 179
第11章 文件与目录操作 181
11.1
文件操作 181
11.1.1
文件数据的写入 181
11.1.2
文件数据的读取 185
11.2
目录操作 186
11.3
文件的上传 191
11.4
实战演练编写文本类型的访客计算器 193
11.5
高手甜点 194
第12章 图形图像处理 195
12.1
在PHP中加载GD库 195
12.2
图形图像的典型应用案例 197
12.2.1
创建一个简单的图像 197
12.2.2
使用GD2函数在照片上添加文字 199
12.2.3
使用TrueType字体处理中文生成图片 200
12.3
Jpgraph库的使用
202
12.3.1
Jpgraph的安装 203
12.3.2
Jpgraph的配置 203
12.3.3
制作柱形图与折线图统计图 203
12.3.4
制作圆形统计图 205
12.4
实战演练制作3D饼形统计图 207
12.5
高手甜点 208
第13章 Cookie和会话管理 210
13.1
Cookie基本操作 210
13.1.1
什么是Cookie 210
13.1.2
创建Cookie 211
13.1.3
读取Cookie 211
13.1.4
删除Cookie 212
13.2
认识Session 214
13.2.1
什么是Session 214
13.2.2
Session的基本功能 214
13.2.3
Cookie与Session 214
13.2.4
在Cookie或URL中存储Session ID 215
13.3
会话管理 215
13.3.1
创建会话 215
13.3.2
注册会话变量 216
13.3.3
使用会话变量 216
13.3.4
注销和销毁会话变量 217
13.4
实战演练会话管理的综合应用 218
13.5
高手甜点 219
第14章 MySQL数据库基础 221
14.1
什么是MySQL 221
14.1.1
客户机服务器结构 221
14.1.2
MySQL版本 222
14.1.3
MySQL优势 223
14.2
启动服务并登录MySQL数据库 223
14.2.1
启动MySQL服务 223
14.2.2
登录MySQL数据库 224
14.2.3
配置Path变量 226
14.3
MySQL数据库的基本操作 228
14.3.1
创建数据库 228
14.3.2
查看数据库 228
14.3.3
删除数据库 229
14.3.4
选择数据库 229
14.4
MySQL数据表的基本操作 230
14.4.1
创建数据表 230
14.4.2
查看数据表 231
14.4.3
修改数据表 233
14.4.4
删除数据表 234
14.5
MySQL语句的操作 234
14.5.1
插入记录 234
14.5.2
查询记录 235
14.5.3
修改记录 235
14.5.4
删除记录 236
14.6
MySQL数据库的备份与还原 236
14.6.1
数据备份 236
14.6.2
数据还原 243
14.7
高手甜点 245
第15章 PHP操作MySQL数据库 247
15.1
PHP访问MySQL数据库的一般步骤 247
15.2
连接数据库前的准备工作 248
15.3
访问数据库 249
15.3.1
使用mysqli_connect函数连接MySQL服务器 249
15.3.2
使用mysqli_select_db函数更改默认的数据库 250
15.3.3
使用mysqli_close函数关闭MySQL连接 251
15.3.4
使用mysqli_query函数执行SQL语句 251
15.3.5
获取查询结果集中的记录数 252
15.3.6
获取结果集中的一条记录作为枚举数组 253
15.3.7
获取结果集中的记录作为关联数组 254
15.3.8
获取结果集中的记录作为对象 255
15.3.9
使用mysqli_fetch_array函数获取结果集记录 255
15.3.10
使用mysqli_free_result函数释放资源 256
15.4
实战演练1PHP操作数据库 256
15.5
实战演练2使用insert语句动态
添加用户信息 258
15.6
实战演练3使用select语句查询数据信息 260
15.7
高手甜点 262
第16章 PDO数据库抽象类库 263
16.1
PDO概述 263
16.2
PDO的安装 264
16.3
使用PDO操作MySQL 264
16.3.1
连接MySQL数据库的方法 265
16.3.2
使用PDO时的try catch错误处理结构 265
16.3.3
使用PDO执行SQL的选择语句 268
16.3.4
使用PDO获取返回数据的类方法 268
16.3.5
使用PDO执行SQL的添加、修改语句 271
16.3.6
使用PDO执行SQL的删除语句 271
16.4
实战演练PDO的prepare表述 272
16.5
高手甜点 274
第17章 JavaScript编程基础 275
17.1
认识JavaScript 275
17.1.1
什么是JavaScript 275
17.1.2
JavaScript的特点
276
17.2
JavaScript在HTML中的使用 277
17.2.1
在HTML网页头中嵌入JavaScript代码 277
17.2.2
在HTML网页中嵌入JavaScript代码 278
17.2.3
在HTML网页的元素事件中嵌入JavaScript代码 279
17.2.4
在HTML中调用已经存在的JavaScript文件 280
17.2.5
通过JavaScript伪URL引入JavaScript脚本代码 281
17.3
JavaScript的基本语法 282
17.3.1
执行顺序 282
17.3.2
区分大小写 283
17.3.3
分号与空格 283
17.3.4
对代码行进行折行 283
17.3.5
注释 283
17.4
JavaScript的数据结构 285
17.4.1
标识符 285
17.4.2
关键字 286
17.4.3
保留字 286
17.4.4
常量 287
17.4.5
变量 287
17.5
代码中的数据类型 289
17.5.1
typeof 运算符 289
17.5.2
Undefined类型 291
17.5.3
Null类型 291
17.5.4
Boolean类型 292
17.5.5
Number类型 293
17.5.6
String类型 294
17.6
条件判断语句 294
17.6.1
if语句 294
17.6.2
ifelse语句 296
17.6.3
switch语句 297
17.7
循环控制语句 299
17.7.1
while语句 299
17.7.2
dowhile语句 300
17.7.3
for循环 301
17.8
在PHP中调用JavaScript代码 302
17.8.1
验证表单元素的值是否为空 302
17.8.2
实现即时验证效果 303
17.9
实战演练制作树形菜单 306
17.10
高手甜点 312
第18章 PHP与XML技术 313
18.1
XML概念 313
18.2
XML语法基础 315
18.2.1
XML文档的组成和声明 315
18.2.2
XML元素介绍 316
18.2.3
实体引用 319
18.2.4
XML命名空间 319
18.2.5
XML DTD 320
18.2.6
使用CDATA标记 321
18.3
将XML文档转换为HTML加以输出 321
18.4
在PHP中创建XML文档 322
18.5
使用SimpleXML扩展 323
18.5.1
创建SimpleXMLElement对象 323
18.5.2
访问特定节点元素和属性 324
18.5.3
添加XML元素和属性 325
18.6
实战演练动态创建XML文档 326
18.7
高手甜点 327
第19章 PHP与Ajax的综合应用 328
19.1
Ajax概述 328
19.1.1
什么是Ajax 328
19.1.2
Ajax的关键元素 331
19.1.3
CSS与Ajax 332
19.2
Ajax快速入门 332
19.2.1
全面剖析XMLHttpRequest对象 333
19.2.2
发出Ajax请求 335
19.2.3
处理服务器响应 336
19.3
在PHP中应用Ajax技术 338
19.4
高手甜点 343
第20章 Smarty模板 344
20.1
MVC概述 344
20.2
什么是模板引擎 345
20.3 Smarty概述 346
20.3.1
什么是Smarty 346
20.3.2
Smarty与MVC 346
20.4
Smarty的安装和配置 347
20.4.1
Smarty的下载和安装 347
20.4.2
第一个Smarty程序 347
20.5
Smarty模板设计 348
20.5.1
Smarty模板文件 348
20.5.2
Smarty标识 349
20.5.3
Smarty变量 351
20.5.4
Smarty数组 352
20.6
Smarty中的流程控制语句 353
20.7
高手甜点 355
第21章 Zend Framework 356
21.1
什么是Zend Framework 356
21.2
Zend Framework的目录结构 357
21.3
Zend Framework的安装与使用 357
21.3.1
Zend Framework的安装 357
21.3.2
创建一个新的Zend Framework应用 358
21.4
PHP与Zend Framework的基本操作 360
21.4.1
在Zend Framework应用中创建控制层文件 361
21.4.2
在Zend Framework的控制层文件中添加一个action 361
21.4.3
在Zend Framework中创建布局 363
21.4.4
在Zend Framework中的数据库操作 363
21.4.5
在Zend Framework中创建表单 364
21.5
高手甜点 366
第22章 PHP MySQL开发论坛实战 367
22.1
需求分析 367
22.1.1
网站的需求分析 367
22.1.2
网站的功能模块分析 368
22.2
数据库分析 368
22.2.1
分析数据库 368
22.2.2
创建数据表 369
22.3
论坛的代码实现 370
22.3.1
数据库连接相关文件 370
22.3.2
论坛主页面 375
22.3.3
新用户注册页面 379
22.3.4
论坛帖子的相关页面 382
22.3.5
后台管理系统的相关页面 391
第23章 开发酒店管理系统网站
417
23.1
网站的需求分析 417
23.2
数据库分析 418
23.3
酒店管理系统的实现 420
23.3.1
使用Yii框架的沙箱模式建立项目 420
23.3.2
开始goodone项目编程 422
23.3.3
构建message 系统 426
23.3.4
构建product 系统 433
23.3.5
构建order系统 435
23.3.6
构建customer 系统 436
內容試閱
前 言PHP是目前世界上最为流行的Web开发语言之一。目前学习和关注PHP的人越来越多,而很多PHP初学者都苦于找不到一本通俗易懂、容易入门和示例实用的参考书。为此,作者组织有丰富经验的开发人员编写了这本PHP动态网站开发教材。本书几乎涉及PHP网站开发的所有重要知识,适合所有的PHP网站开发初学者快速入门,同时也适合想全面了解PHP MySQL网站开发的人员阅读。通过全书的学习,读者可以完整地掌握PHP网站开发的技术要点,并具备动态网站开发的基本技术。本书内容丰富全面,图文并茂,步骤清晰,语言通俗易懂,使读者能理解PHP网站开发的技术构成,并能解决实际生活或工作中的问题,真正做到知其然,更知其所以然。通过重点章节,条理清晰地介绍了读者希望了解的知识,对PHP网站开发有兴趣的读者可以快速上手设计和制作动态网站。本书注重实用,可操作性强,详细讲解了书中每一个知识点和每一个PHP网站开发的方法和技巧,是一本物超所值的参考用书。本书特色? 内容全面:知识点由浅入深,涵盖了所有PHP知识点,可使读者逐步掌握PHP MySQL动态网站开发技术。? 图文并茂:注重操作,在介绍案例的过程中,每一个操作均有对应的插图。这种图文结合的方式使读者在学习过程中能够直观、清晰地看到操作的过程和效果,便于更快地理解和掌握所讲内容。? 示例丰富:把知识点融汇于系统的示例当中,并且在示例中进行讲解和拓展,从而达到知其然,并知其所以然的效果。? 技巧提示:本书对读者在学习过程中可能会遇到的疑难问题以提示和技巧的形式进行了说明,以免读者在学习的过程中走弯路。读者对象本书是一本完整介绍PHP网页布局技术的教程,内容丰富,条理清晰,实用性强。? PHP语言初学者,可以快速掌握PHP语言开发的知识和技巧。? 动态网站制作初学者,可以快速学会制作内容丰富的动态网站。? PHP MySQL架构Web系统开发人员,可以在编程开发过程中参考。源码、课件、教学视频和电子参考书下载本书配套源码、课件、教学视频和电子参考书下载地址(注意数字和字母大小写)如下:http:yun.baidu.coms1pKUnkzL如果下载有问题,请电子邮件联系booksaga@163.com,邮件主题为PHP 7编程。致谢本书由刘增杰和张工厂编写,参与编写的还有胡同夫、王英英、肖品、孙若淞、王攀登、王维维、梁云亮、刘海松、陈伟光、刘增产、包惠利和刘玉萍等。本书虽然倾注了编者的心血,但由于水平有限,书中难免有疏漏之处,敬请谅解,如果遇到问题或有意见和建议,请与我们联系,我们将全力提供帮助,技术支持QQ群:2606372761。
编 者2016年11月


第 5 章字符串和正则表达式
字符串在PHP程序中经常被使用,如何格式化字符串、如何连接分离字符串、如何比较字符串等是初学者经常遇到的问题。另外,本章还将讲述正则表达式的使用方法和技巧。
? 掌握字符串单引号和双引号的使用? 掌握字符串连接符的使用? 掌握字符串的基本操作? 熟悉正则表达式的基本概念? 掌握正则表达式的语法规则5.1 字符串的单引号和双引号字符串是指一连串不中断的字符。这里的字符主要包括以下几种类型:? 字母类型,如常见的a、b、c等。? 数字类型,如常见的1、2、3、4等。? 特殊字符类型,如常见的#、%、^、$等。? 不可见字符类型,如回车符、Tab字符和换行符等。标识字符串通常使用单引号或双引号,表面看起来没有什么区别。但是,对于存在于字符串中的变量,这两个是不一样的。(1)双引号内会输出变量的值。单引号内直接显示变量名称。(2)双引号中可以通过\转义符输出的特殊字符如下。? \n:新一行。? \t:Tab。? \\:反斜杠。? \0:ASCⅡ码的0。? \$:把此符号转义为单纯的美元符号,而不再作为声明变量的标识符。? \r:回车。? \{octal #}:八进制转义。? \x{hexadecimal #}:十六进制转义。另外,单引号中可以通过\转义符输出的特殊字符只有:? \:转义为单引号本身,而不作为字符串标识符。? \\:用于在单引号前的反斜杠转义为其本身。下面通过实例来讲解它们的不同用法。【例5.1】(实例文件:ch05\5.1.php)运行结果如图5-1所示。可见单引号字符串和双引号字符串在PHP中处理普通的字符串时的效果是一样的,而在处理变量时是不一样的,单引号字符串中的内容只是被当成普通的字符串处理,而双引号字符串的内容是可以被解释并替换的。图5-1 程序运行结果【案例分析】(1)其中,第一段程序使用双引号对字符串进行处理,\$转义成了美元符号,$message的值PHP程序被输出。(2)第二段程序使用单引号对字符串进行处理。$message2的值在单引号的字符串中无法被输出,但是可以通过变量直接打印出来。5.2 字符串的连接符字符串连接符的使用十分常见。这个连接符就是.(点),既可以直接连接两个字符串,也可以连接两个字符串变量,还可以连接字符串和字符串变量,如下面的实例所示。【例5.2】(实例文件:ch05\5.2.php)运行结果如图5-2所示。图5-2 程序运行结果除了上面的方法以外,读者还可以使用{}的方法连接字符串,此方法类似于C语言中printf的占位符。下面举例说明其使用方法。【例5.3】(实例文件:ch05\5.3.php)运行结果如图5-3所示。图5-3 程序运行结果5.3 字符串的基本操作字符串的基本操作主要包括对字符串的格式化处理、连接切分字符串、比较字符串、字符串子串的对比与处理等。5.3.1 手动和自动转义字符串中的字符手动转义字符串数据就是在引号内(包括单引号和双引号)通过\(反斜杠)使一些特殊字符转义为普通字符。在介绍单引号和双引号的时候已经对这个方法进行了详细的描述。自动转义字符串的字符,是通过PHP的内置函数addslashes来完成的。还原这个操作则是通过stripslashes来完成的。以上两个函数也经常使用在格式化字符串中,以用于MySQL的数据库存储。5.3.2 计算字符串的长度计算字符串的长度经常在很多应用中出现,比如输入框输入文字的长度等,都会用到此功能。使用strlen函数就可以实现这个功能。以下实例介绍计算字符串长度的方法和技巧。【例5.4】(实例文件:ch05\5.4.php)50{ echo "输入的字符串的长度不能大于50个字符。"; }else{ echo "允许输入字符串的长度,此字符串长度为$length"; }?运行结果如图5-4所示。图5-4 程序运行结果【案例分析】(1)其中,$someinput为一个字符串变量。strlen$someinput则直接调用strlen函数计算出字符串的长度。(2)在if语句中strlen$someinput返回字符串长度并与50这一上限做比较。由于$someinput中有中文和英文两种字符,它的长度为41,正如输出所示。(3)由于每个中文字占两个字符位,每个英文字符占一个字符位,字符串内的每个空格也算一个字符位,因此,最后字符串的长度为41个字符。5.3.3 字符串单词统计有时对字符串的单词进行统计有更大意义。使用str_word_count函数可以实现此操作,但是这个函数只对基于ASCII码的英文单词起作用,并不对UTF8的中文字符起作用。下面通过实例介绍字符串单词统计中的应用和技巧。【例5.5】(实例文件:ch05\5.5.php)运行结果如图5-5所示。可见str_word_count函数无法计算中文字符,查询结果为0。图5-5 程序运行结果5.3.4 清理字符串中的空格空格在很多情况下是不必要的,所以清除字符串中的空格显得十分重要。比如在判定输入是否正确的程序中,出现了不必要的空格,将增大程序出现错误判断的概率。清除空格要用到ltrim、rtrim和trim函数。其中,ltrim是从左边清除字符串头部的空格,rtrim是从右边清除字符串尾部的空格,trim则是从字符串两边同时去除头部和尾部的空格。以下实例介绍去除字符串中空格的方法和技巧。【例5.6】(实例文件:ch05\5.6.php)运行结果如图5-6所示。图5-6 程序运行结果【案例分析】(1)其中,$someinput为一个两端都有空格的字符串变量。ltrim$someinput从左边去除空格,rtrim$someinput从右面去除空格,trim$someinput从两边同时去除。(2)其中,$someinput2为一个两端都有空格,并且中间也有空格的字符串变量。用trim$someinput2处理,也只是去除两边的空格。5.3.5 字符串的切分与组合字符串的切分使用explode和strtok函数。切分的反向操作为组合,使用implode和join函数。其中,explode把字符串切分成不同部分后存入一个数组,impolde函数则是把数组中的元素按照一定的间隔标准组合成一个字符串。以下实例介绍去除字符串切分和组合的方法和技巧。【例5.7】(实例文件:ch05\5.7.php)'',$a."
"; 组合字符串$a echo implode''*'',$b;?运行结果如图5-7所示。图5-7 程序运行结果【案例分析】(1)explode函数把$someinput和$someinput2按照下划线和空格的位置把它们分别切 分成$a和$b两个数组。(2)implode函数把$a和$b两个数组的元素分别按照和*为间隔组合成新的字符串。5.3.6 字符串子串的截取在一个字符串中截取一个子串就是字符串截取。完成这个操作需要用到substr函数。这个函数有3个参数,分别规定了目标字符串、起始位置和截取长度。它的格式如下:substr(目标字符串,起始位置,截取长度)其中,目标字符串是某个字符串变量的变量名,起始位置和截取长度都是整数。如果都是正数,起始位置的整数必须小于截取长度的整数,否则函数返回值为假。如果截取长度为负数,则意味着是从起始位置开始往后除去从目标字符串结尾算起的长度数的字符以外的所有字符。以下实例介绍去除字符串截取的方法和技巧。【例5.8】(实例文件:ch05\5.8.php)运行结果如图5-8所示。图5-8 程序运行结果【案例分析】(1)$someinput为英文字符串变量。substr$someinput,0,11和substr$someinput,1,15展示了起始位和截取长度。substr$someinput,0,-2则是从字符串开头算起,除了最后两个字符,其他字符都截取的子字符串。(2)$someinput2为中文字符串变量。因为中文字符是全角字符,都占两个字符位,所以截取长度一定要是偶数。如果是单数,那么在此字符位上的汉字将不被输出。如果在这样截取长度为单数的字符串子串后连接其他字符串输出,就会出现输出错误。所以,要小心使用。5.3.7 字符串子串替换在某个字符串中替换其中的某个部分是重要的应用,就像使用文本编辑器中的替换功能一样。完成这个操作需要使用substr_replace函数,它的格式为:substr_replace目标字符串,替换字符串,起始位置,替换长度以下实例介绍字符串替换的方法和技巧。【例5.9】(实例文件:ch05\5.9.php)运行结果如图5-9所示。图5-9 程序运行结果【案例分析】(1)$someinput为英文字符串变量。从第三个字符开始为ID号。第一个输出是以************替换第三个字符开始往后的11个字符。(2)第二个输出是用尾号为替代第三个字符开始往后的11个字符。5.3.8 字符串查找在一个字符串中查找另外一个字符串,就像文本编辑器中的查找一样。实现这个操作需要用到strstr或stristr函数。其格式为:strstr(目标字符串,需查找字符串)如果函数找到需要查找的字符或字符串,就返回从第一个查找到字符串的位置往后所有的字符串内容。stristr函数为不敏感查找,也就是对字符的大小写不敏感。用法与strstr相同。以下实例介绍字符串查找的方法和技巧。【例5.10】(实例文件:ch05\5.10.php)运行结果如图5-10所示。图5-10 程序运行结果【案例分析】(1)$someinput为英文字符串变量。strstr$someinput,"dream"大小写敏感,所以输出字符串最后的字符。stristr$someinput,"dream"大小写不敏感,所以直接在第一个大写的匹配字符就开始输出。(2)$someinput2为中文字符串变量。strstr函数同样对中文字符起作用。5.3.9 大小写转换在PHP中,通过使用大小写转换函数,可以修改字符串中字母大小不规范的问题。常见的大小写转换函数如下:srting strtolower(srting str); 转换为小写srting strtoupper(srting str); 转换为大写srting ucfirst(srting str); 整个字符串首字母大写srting ucwords(srting str);整个字符串中以空格为分隔符的单词首字母大写【例5.11】(实例文件:ch05\5.11.php)运行结果如图5-11所示。图5-11 程序运行结果5.4 什么是正则表达式上面介绍的对字符串的处理方法比较简单,只是使用一定的函数对字符串进行处理,无法满足对字符串的复杂处理需求,此时就需要使用正则表达式。正则表达式是把文本或字符串按照一定的规范或模型表示的方法,经常用于文本的匹配操作。例如,验证用户在线输入的邮件地址的格式是否正确。使用正则表达式技术,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,就会弹出提示信息,要求用户重新输入正确的邮件地址。可见正则表达式在Web应用的逻辑判断中具有举足轻重的作用。5.5 正则表达式语法规则一般情况下,正则表达式由两部分组成,分别是元字符和文本字符。元字符就是具有特殊含义的字符,例如?和*等,文本字符就是普通的文本,例如字母和数字等。本节主要讲述正则表达式的语法规则。1. 方括号([ ])方括号内的一串字符是将要用来进行匹配的字符。例如,正则表达式在方括号内的[name]是指在目标字符串中寻找字母n、a、m、e。[jjk]表示在目标字符串中寻找字符j和k。2. 连字符(-)在很多情况下,不可能逐个列出所有字符。比如,若要匹配所有英文字符,则把26个英文字母全部输入会十分困难。这样就有如下表示:? [a-z]表示匹配英文小写从a到z的任意字符。? [A-Z]表示匹配英文大写从A到Z的任意字符。? [A-Za-z] 表示匹配英文大小写从大写A到小写z的任意字符。? [0-9]表示匹配从0到9的任意十进制数。由于字母和数字的区间固定,因此根据这样的表示方法,即[开始-结束],程序员可以重新定义区间大小,如[2-7]、[c-f]等。3. 点号字符(.)点号字符在正则表达式中是一个通配符,代表所有字符和数字,例如,.er表示所有以er结尾的三个字符的字符串,可以是per、ser、ter、@er、&er等。4. 限定符( *?{n,m})? 加号 表示其前面的字符至少有一个。例如,9 表示目标字符串包含至少一个9。? 星号*表示其前面的字符不止一个或零个。例如,y*表示目标字符串包含0或不止一个y。? 问号?表示其前面的字符为一个或零个。例如,y?表示目标字符串包含0或一个y。? 大括号{n,m}表示其前面的字符有n或m个。例如,a{3,5}表示目标字符串包含3个或5个a。a{3}表示目标字符串包含3个a。a{3,}表示目标字符串至少包含3个 a。点号和星号可以一起使用,如.*表示匹配任意字符。5. 行定位符(^和$)行定位符用来确定匹配字符串所要出现的位置。如果是在目标字符串开头出现,就使用符号^;如果是在目标字符串结尾出现,就使用符号$。例如,^xiaoming 是指xiaoming只能出现在目标字符串开头,8895$ 是指8895只能出现在目标字符串结尾。可以同时使用这两个符号,如^[a-z]$,表示目标字符串只包含从a到z的单个字符。6. 排除字符([^])符号^在方括号内所代表的意义则完全不同,表示一个逻辑否,排除匹配字符串在目标字符串中出现的可能。例如,[^0-9]表示目标字符串包含从0到9以外的任意其他字符。7. 括号字符( )括号字符表示子串,所有对包含在子串内字符的操作都是以子串为整体进行的。括号字符也是把正则表达式分成不同部分的操作符。8. 选择字符(|)选择字符表示或选择。例如,com|cn|com.cn|net表示目标字符串包含com或cn或com.cn或net。9. 转义字符(\)与反斜线(\)由于\在正则表达式中属于特殊字符,如果单独使用此字符,就直接表示为作为特殊字符的转义字符。如果要表示反斜杠字符本身,就在此字符前添加转义字符\,即\\。10. 认证email的正则表达在处理表单数据的时候,对用户的email进行认证是十分常用的。可以使用正则表达式匹配来判断用户输入的是否为一个email地址。它的格式如下:^[A-Za-z0-9_.] @[ A-Za-z0-9_] \.[ A-Za-z0-9.] $其中,^[A-Za-z0-9_.] 表示,至少有一个英文大小写字符、数字、下划线、点号,或者这些字符的组合。@表示email中的@。[ A-Za-z0-9_] 表示,至少有一个英文大小写字符、数字、下划线,或者这些字符的组合。\.表示email中.com之类的点。由于这里点号只是点本身,因此用反斜杠对它进行转义。[ A-Za-z0-9.] $表示至少有一个英文大小写字符、数字、点号,或者这些字符的组合,并且直到这个字符串的末尾。11. 如何使用正则表达式对字符串进行匹配使用正则表达式对目标字符串进行匹配是正则表达式的主要功能。完成这个操作需要用到ereg函数。这个函数用于在目标字符串中寻找符合特定正则表达规范的字符串子串,根据指定的模式来匹配文件名或字符串。其中,ereg函数对字符大小写不敏感。它的语法格式如下:ereg(正则表达规范,目标字符串,数组)提示:另外用户也可以使用eregi函数对字符串进行匹配,它和ereg函数最大的区别是对字符大小写敏感。下面介绍利用正则表达规范匹配email输入的方法和技巧。【例5.12】(实例文件:ch05\5.12.php)
运行结果如图5-12所示。图5-12 程序运行结果【案例分析】(1)$email就是一个完整的email字符串,用$regex这个正则规范(匹配email的规范)来匹配$email,得出的结果为图中第一行输出。(2)ereg$regex, $email, $a把匹配的子串存储在名为$a的数组中。print_r$a打印数组,得出结果为第一行数组输出。(3)$email2是一个包含了完整email的字符串。用$regex匹配,其返回值必然为false。用$regex2规范匹配,其返回值为真。因为$regex2规范中去掉了表示从字符串头部开始的符号^。ereg$regex2, $email2, $b把匹配的子串存储在数组$b中。print_r$b得到第二行数组的输出。(4)$asemail字符串不符合规范$regex,返回值为false,得到相应输出。12. 使用正则表达式替换字符串子串完成字符串及其子串的匹配后,如果需要对字符串的子串进行替换,也可以使用正则表达式完成。例如,输入文本中的url变成可以直接单击的连接。此操作需要使用ereg_replace和eregi_replace函数。其中ereg_replace对大小写敏感,而eregi_replace对大小写不敏感。其格式为:ereg_replace正则表达规范,欲取代字符串子串,目标字符串用户也可以使用eregi_replace 函数对字符串进行替换。通过以下实例介绍利用正则表达式取代字符串子串的方法和技巧。【例5.13】(实例文件:ch05\5.13.php)\\0",$searchurl;echo "
";echo ereg_replace"http:[a-zA-Z0-9.-_] ","\\2",$searchurl;?
运行结果如图5-13所示。图5-13 程序运行结果【案例分析】(1)$searchurl里面包含两个url文本。ereg_replace按照格式对$searchurl里的url进行匹配替换。(2)正则规范为"http:[a-zA-Z0-9.-_] ",可分为两部分,即http:和[a-zA-Z0-9.-_] ,前者直接匹配,后者用正则语法匹配。(3)第一行的输出替换为"\\0"。里面的\\0把反斜杠转义后表示的是\0,\0表示正则规则中所有部分匹配的内容。第二行的输出替换为"\\2",里面的\\2把反斜杠转义后表示的是\2,\2表示正则规则中第二部分匹配的内容,输出如图5-13所示。依此类推,\1表示的是第一部分匹配的内容,即(http:)。13. 使用正则表达式切分字符串使用正则表达式可以把目标字符串按照一定的正则规范切分成不同的子串。完成此操作要用到strtok函数,它的语法格式为:strtok(正则表达式规范,目标字符串)这个函数以正则规范内出现的字符为准,把目标字符串切分成若干个子串,并且存入数组。下面通过实例介绍利用正则表达式切分字符串的方法和技巧。【例5.14】(实例文件:ch05\5.14.php)运行结果如图5-14所示。图5-14 程序运行结果【案例分析】(1)$string为包含多种字符的字符串。strtok$string, " "对其进行切分,并将结果存入数组$token。(2)正则规范为" ",以空格将字符串切分。5.6 实战演练创建酒店系统在线订房表本实例主要创建酒店系统的在线订房表,其中需要创建两个PHP文件,具体创建步骤如下。 在网站主目录下建立文件formstringhandler.php,输入以下代码并保存。您的订房信息:= 15{echo "这不是一个有效的电话号码, 请返回上页且重试";exit;}if $gender == "m"{$customer = "先生";}else{$customer = "女士";}echo ''您的订房信息已经上传,我们正在为您准备房间。 确认您的订房信息如下:
'';echo $customername."\t".$customer.'' 将会在 ''.$arrivaltime.'' 天后到达。 您的电话为''.$phone."。我们将会发送一封电子邮件到您的email邮箱:".$email."。
另外,我们已经确认了您其他的要求如下:
";echo nl2br$info;echo "您的订房时间为:".date''Y m d H:i:s''."
";? 在网站主目录下创建文件form4string.html,输入以下代码并保存。GoodHome在线订房表。客户姓名:客户性别:男女 到达时间:一天后两天后三天后四天后五天后电话:email:其他需求: 如果您有什么其他要求,请填在这里。 运行form4string.html,结果如图5-15所示。图5-15 在线订房表 填写表单。【客户姓名】为王小明、【客户性别】为男、【到达时间】为三天后、【电话】为13592XXXX77、【email】为wangxiaoming@hotmail.com、【其他需求】为两壶开水,【Enter】一条白毛巾,【Enter】一个冰激凌。单击【确认订房信息】按钮,浏览器会自动跳转至formstringhandler.php页面,显示结果如图5-16所示。图5-16 确认订房信息【案例分析】(1)$customername = trim$_POST[''customername'']; 、$phone = trim$_POST[''phone'']; 、$email = trim$_POST[''email'']; 和$info = trim$_POST[''info'']; 都是通过文本输入框直接输入的。所以,为了保证输入字符串的纯粹性,以方便处理,需要使用trim对字符串前后的空格进行清除。另外,ltrim清除左边的空格;rtrim清除右边的空格。(2)!eregi''^[a-zA-Z0-9_\-\.] @[a-zA-Z0-9\-] \.[a-zA-Z0-9_\-\.] $'',$email中使用正则表达式对输入的email文本进行判断。(3) nl2br对$info变量中的【Enter】操作,也就是对
操作符进行了处理。在有新行\nl操作的地方生成
。(4)由于要显示中文,因此需要对文字编码进行设置,charset=gb2312就是简体中文的文字编码。5.7 高手甜点甜点1:模式修饰符、单词界定符和方括号[]连用,还是和在一起使用?在PHP正则表达式的语法当中,一种是POSIX语法,一种是Perl语法。POSIX语法是先前所介绍的语法。Perl语法则不同于POSIX语法。Perl语法的正则表达是以开头和以结尾的,如name便是一个Perl语法形式的正则表达。模式修饰符则是在Perl语法正则表示中的内容。比如i表示正则表达式对大小写不敏感,g表示找到所有匹配字符,m表示把目标字符串作为多行字符串进行处理,s表示把目标字符串作为单行字符串进行处理,忽略其中的换行符,x表示忽略正则表达式中的空格和备注,u表示在首次匹配后停止。单词界定符也是Perl语法正则表示中的内容。不同的单词界定符表示不同的字符界定范围。例如,\A表示仅仅匹配字符串的开头;\b表示匹配到单词边界;\B表示除了单词边界,匹配所有;\d表示匹配所有数字字符,等同于[0-9];\D表示匹配所有非数字字符;\s表示匹配空格字符;\S表示匹配非空格字符;\w表示匹配字符串,如同[a-zA-Z0-9_];\W表示匹配字符,忽略下划线和字母数字字符。甜点2:支持Perl语法形式的正则表达式有哪些?PHP为Perl语法的正则表达方式提供了如下函数。(1)preg_grep用来搜索一个数组中的所有数组元素,以得到匹配元素。(2)preg_match以特定模式匹配目标字符串。(3)preg_match_all以特定模式匹配目标字符串,并且把匹配元素作为元素返回给一个特定数组。(4)preg_quote在每一个正则表达式的特殊字符前插入一个反斜杠(\)。(5)preg_replace替代所有符合正则表达式格式的字符,并返回按照要求修改的结果。(6)preg_replace_callback以键值代替所有符合正则表达式格式字符的键名。(7)preg_split按照正则模型切分字符串。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.