php函数大全 笔记,PHP笔记(PHP高级篇),php笔记

PHP笔记(PHP高级篇),php笔记

高级篇中将涉及数据库的使用以及Cookie和Session会话,提高PHP的开发效率和运行效率

PHP程序员需要掌握的MySQL操作

为项目设计表

使用SQL语句

MySQL的目录结构

data目录中存放的是库文件

bin目录中存放的是MySQL管理命令

*.ini文件记录的是MySQL的配置

连接MySQL DB:

mysql -h sql地址 -u 用户名 -p密码,如mysql -h localhost -u root -p123456

安全的方法:先输入“mysql -h sql地址 -u 用户名 -p”,回车,再输入密码

数据定义语言(DDL)

定义:用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等

SQL语句

创建数据库

CREATE DATABASE [IF NO EXISTS] DatabaseName

创建表

CREATE TABLE [IF NOT EXISTS]TableName (

colname1 type[property] [index],

colname2 type[property] [index],

...

)[tableType] [tableCharSet];

修改表

alter table 操作

数据类型

数值型

UNSIGNED:指定为无符号存储

整型

TINYINT 1 Byte (-128,127) (0,255) 小整数值

SMALLINT 2 Byte (-32 768,32 767) (0,65 535) 大整数值

MEDIUMINT 3 Byte (-8 388 608,8 388 607) (0,16 777 215) 大整数值

INT或INTEGER 4 Byte (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值

BIGINT 8 Byte (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

浮点型

FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38)

DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

字符型

CHAR 0-255Byte 定长字符串,

VARCHAR 0-255Byte 变长字符串,必须指定长度

TINYBLOB 0-255Byte 不超过 255 个字符的二进制字符串

TINYTEXT 0-255Byte 短文本字符串

BLOB 0-65 535Byte 二进制形式的长文本数据

TEXT 0-65 535Byte 长文本数据

MEDIUMBLOB 0-16 777 215Byte 二进制形式的中等长度文本数据

MEDIUMTEXT 0-16 777 215Byte 中等长度文本数据

LOGNGBLOB 0-4 294 967 295Byte 二进制形式的极大文本数据

LONGTEXT 0-4 294 967 295Byte 极大文本数据

CHAR的处理速度比较快,VARCHAR具有可变大小

二进制保存主要用于保存非文本文件

ENUM,枚举类型,最多能存储65535个值,一个字段只能存一个值

SET,集合类型,最多可存储64个值,一个值段可存多个值

日期型

DATE 3Byte 1000-01-01/9999-12-31 YYYY-MM-DD 日期值

TIME 3Byte '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间

YEAR 1Byte 1901/2155 YYYY 年份值

DATETIME 8Byte 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值

TIMESTAMP 8Byte 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

※任何数据类型以字符串的形式存入,都可以自动转换类型

※将时间保存为php时间戳,方便运算

数据字段属性

unsigned:设置该字段为无符号数值,只能是数值型

zerofill:设置该字段的记录的值未达到指定位数时,用“0”填充,只能是数值型

auto_increment:设置该字段的值自动增长,也可设定自定义值,需要同时设定索引或主键,只能是数值型

null和not null:设置该字段是否允许为空,建议设定为非空,配合default使用

default:设置该字段的默认值,若不输入,使用默认值

索引

优点:

提高查询速度

缺点:

创建和维护成本比较高

占用资源

主键索引(primary key):索引值必须唯一,每张表只有一个

唯一索引(unique):索引值必须唯一,但一张表可以有多个

常规索引(index):最基本的索引,没有太多的限制

全文索引(filltext):只能在MyISAM上使用,表越大,效果越好,但速度较慢

创建和使用,可查看MySQL索引类型一览表 让MySQL高效运行起来

数据表类型及存储位置

MySQL可以针对不同的存储引擎需求可以选择最优的存储引擎

数据表类型即存储引擎

使用type或engine关键字指定表类型

常用的表类型

MyISAM

强调快速读取操作

对一些功能不支持(事务)

InnoDB

支持一些MyISAM不支持的功能

不支持全文索引

占用空间比较大

功能

MyISAM

InnoDB

事务处理

不支持

支持

数据行锁定

不支持

支持

外键约束

不支持

支持

表空间占用

相对较小

较大

全文索引

支持

不支持

MySQL默认字符集

推荐utf8

字符集:用来定义MySQL存储字符串的方式

使用character set关键字指定字符集

校对规则:对规则定义了比较字符串的方式

使用collate指定校对规则

数据操作语言(DML)

主要有三种形式:

1) 插入:INSERT

insert into tablename[(字段列表)] values(值列表1)[,(值列表2)...]

表名后面,若有字段列表,则值列表与字段列表一一对应,若没有字段列表,则值列表与表中的字段一一对应

2) 更新:UPDATE

update tablename set 字段名='值' [条件]

3) 删除:DELETE

delete from tablename [条件]

可以使用运算符,包括算术运算符、逻辑运算符、比较运算符、位运算符

数据查询语言(DQL)

基本结构是由SELECT[ALL|DISTINCT]子句,FROM子句,WHERE

子句组成的查询块:

SELECT

FROM

[WHERE/GROUP BY/ORDER BY]

DISTINCT表示不显示重复的记录

使用as关键字,可为字段名起别名,用于可能产生歧义的字段名

数据控制语言(DCL)

定义:用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

MySQL内置函数

位置:select语句,及子句where order by having 中,update delete语句及子句

函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值

常用

字符串函数

concat:把传入的参数连接成一个字符串

insert(str,x,y,insert):从str的x位置开始,替换y长度的字符串为insert

lower(str),upper(str):将字符串转换为大写,小写

left(str,x) right(str,x) 返回str左边(右边)x个字符,x为null则返回null

lpad(str,n,pad) rpad(str,n,pad) 用pad对字符串str从最左边(右边)进行填充,直到总长度n

trim(str),ltrim(str),rtrim(str)去掉两边,左边,右边空格

replace(str,a,b) 在字符串str中用字符串b替换所有的字符串a

strcmp(s1,s2):如果S1比S2小,返回-1;如果S1比S2大则返回1;如果相等则返回0(比较的是ASCII码)

substring(str,x,y) 返回字符串str中从位置x起,长度为y的子字符串

数值函数

abs(x):返回绝对值

ceil(x):返回大于x的最小整数

floor(x):返回小于x的最大整数

mod(x,y):返回x与y的模

rand():返回0-1之间的随机数

round(x,y):返回参数x的y位小数的四舍五入结果

truncate(x,y):返回数字x截断为y位小数的结果

日期函数

curdate():返回当前年月日

curtime():返回当前时分秒

now():返回当前日期

unix_timestamp(time):返回unix时间戳

from_unixtime():将Unix时间戳转换为日期

week():返回时间戳的周

year():返回时间戳的年

hour():返回时间戳的小时

minute():返回时间戳的分钟

month():返回时间戳的月

date_format(time,"%Y-%m-%d %H:%i:%s"):格式化返回时间

流程控制函数

if(value,t,f):如果value值为true,返回t,如果value值为false,返回f

ifnull(value1,value2):如果value1为空,则返回value2,如果value1不为空,返回value1

case

when value1 then value2

when value3 then value4

......

else fault END

当value1为true,返回value2,当value3位true,返回value4,以此类推,否则返回fault

其他用法:mysql 语句case when

其他函数

database():返回数据库名

version():返回MySQL版本

user():返回MySQL的用户

inet_aton(ip):将IP转换为网路字节序

inet_nton():将网络字节序转为IP

password():MySQL用户密码加密

md5(str):将字符串加密

PHP操作数据库

连接数据库

mysql_connect(IP,user,psw):IP为数据库地址,user为用户名,psw为用户密码,连接成功,返回数据库资源,连接失败,返回false

选择库

mysql_select_db($dbname,[$res]):$dbname为库名称;$res为连接数据库是返回的资源,若不添加该参数,则默认为最近创建的数据库资源

SQL语句输入

mysql_query():执行SQL语句,若语句有返回结果集,则函数执行成功返回结果集,若语句没有返回结果集,函数执行成功返回true

解决错误

mysql_errno():返回错误号

mysql_error():返回错误信息

关闭数据库资源

mysql_close():关闭数据库资源,不使用参数,默认关闭开启的资源(推荐)

函数

mysql_insert_id():返回自动增长的id,若没有设置AUTO_INCREMENT,则返回false

mysql_affected_rows():获取受影响的行数

从结果集中取出数据

mysql_fetch_row($result):从结果集中取得一条数据,返回索引数组

mysql_fetch_assoc($result):从结果集中取得一条数据,返回关联数组

mysql_fetch_array($result):从结果集中取得一条数据,返回索引数组和关联数组

mysql_fetch_object($result):从结果集中取得一条数据,返回对象

mysql_data_seek($result,$row):将指针移动到指定位置

从结果集中获取字段

mysql_num_rows($result):获取结果集的字段数

mysql_num_fields($result):获取结果集的列数

mysql_field_name($result):获取结果集的字段名

mysqli操作数据库

PHP5以后的新添加的功能都是面向对象的,所以mysqli是以对象的形式添加的

mysqli优点

表示改进

功能增加

效率大大增加

更稳定

mysqli扩展提供的三个类

mysqli:和连接有关的类

构造方法

mysqli([$host[, $username[, $passd[, $dbname[,$port [, $socket]]]]]])

连接成功返回对象,失败返回false

查看连接失败信息

connect_errno():返回连接错误号码

connect_error():返回连接错误信息

SQL语句输入

query(sql):执行SQL语句,若语句有返回结果集,则函数执行成功返回结果集对象mysqli_result,若语句没有返回结果集,函数执行成功返回true

方法

affected-rows():返回影响行数

errno():返回错误号

error():返回错误信息

insert_id():返回自动增长的id

关闭资源

close():关闭连接

mysqli_result:表达对数据库的查询所返回的结果集

属性:

$num_rows:结果集中记录数

$field_count:结果集中字段数

$current_field:获取当前列的位置

方法:

处理记录

fetch_row():与mysql_fetch_row()一致

fetch_assoc():与mysql_fetch_assoc()一致

fetch_array():与mysql_fetch_array()一致

fetch_object():与mysql_fetch_object()一致

data_seek():与mysql_data_seek()一致

free():释放结果集

处理字段

fetch_field():取出列信息,并作为对象返回

fetch_fields():取出所有列信息,并作为对象返回

field_seek():移动字段指针

执行多条SQL语句

multi_query(sql1[;sql2]):可执行多条sql语句,语句间用“;”隔开,若有多个结果集,则均会被返回

next_result():返回multi_query()的下一个结果集

more_results():检查是否含有下一个结果集

mysqli_stmt:预处理类

优点:

mysqli和mysqli_result能完成的功能,mysqil_stmt都能完成

效率比较高,执行多条相同的sql语句,只有数据不同的话,不用重复传语句,直接传数据即可

防止sql注入,因为出入的数据只会当做值类使用,不会当做可执行语句

创建对象

创建好mysqli对象后,使用该对象的stmt_init()方法初始化mysqli_stmt对象

准备并发送语句

语句中的参数值要使用占位符“?”代替

使用mysqli_stmt中的prepare($sql)方法将语句发送到服务器准备

不用创建mysqli_stmt对象,直接使用mysqli中的prepare($sql)准备sql语句,并返回mysqli_stmt对象

给占位符传值(绑定参数)

使用bind_param($type,$var1[,$var2...])绑定参数

$type可以为i、d、s、b,分别代表integer、double、string和二进制资源

$type中的类型个数要与占位符相同,$var个数也要与占位符个数相同

给变量$var赋值

执行sql语句

没有结果集返回

使用execute()方法执行插入的参数,返回boolean类型

有结果集返回

使用bind_result($var1[,$var2...])绑定结果集

使用fetch()执行语句,每次获取一条结果,并传递到bind_result()中的变量

使用store_result()执行语句,将所有结果一次性取出,返回结果集,再用fetch()获取每一条记录

result_matedate()返回结果集,用于获取字段信息

使用result_free()释放结果集

关闭资源

使用close()方法关闭

函数

mysqli和mysqli_result支持函数,mysqli_stmt基本都支持

事务处理

建立表

表类型为MyISAM不支持事务功能,需要建立InnoDB类型的表

关闭自动提交

autocommit():参数为0或false时,关闭自动提交

提交事务

commit():提交事务(多条执行后的sql语句)

回滚事务

rollback():回滚事务(多条已执行的sql语句)

其他方法

set_charset($string):设置取出字符集

PDO

优点:

更换数据库时,不用更改代码

缺点:

效率不如mysql和mysqli高

三个类

PDO:代表 PHP 和数据库服务之间的一个连接

创建PDO对象

dpo($dsn,$username,$passd[,$array]):$dsn连接mysql数据库时,设置为'mysql:host=ip:port;dbname=$string',$array为调优参数

DSN(data source name)数据源:包括主机位置、库名和不同数据库所需驱动

可用getattribute($attribute)查看属性,使用setattribute($attribute,$value)设置属性

执行sql语句

query($string):执行有结果集返回的语句,返回预处理对象PDOStatement

exec($string):执行对表有影响的语句,返回被影响行数

设计错误报告

使用setAttribute()设置错误报告模式

ERRMODE_SILENT:不显示错误,开发人员自行检查错误

errorCode:返回错误号码

errorInfo:返回错误信息数组

ERRMODE_WARNING:发生错误,显示一个E_WARNING消息

ERRMODE_EXCEPTION:发生错误,抛出PDOException异常

事务处理

使用setAttribute(),设置开启事务处理,关闭自动提交

使用commit()提交已执行的sql语句

使用rollback()回滚已执行的sql语句

PDOStatement:代表一条预处理语句,并在该语句被执行后代表一个相关的结果集

作用

准备一条语句

处理结果集

准备并发送语句

语句中的参数值可使用占位符“?”

占位符“:占位符名字”代替

使用PDO::prepare($sql)方法将语句发送到服务器准备,返回PDOStatement对象,存储结果集

给占位符传值(绑定参数)

使用bind_param($key,$value)绑定参数

“?”占位符

$key设置为索引号,

$value设置为传送值

名字占位符

$key设置为键名

$value设置为传送值

sql语句执行

使用execute()方法执行已绑定参数的语句

使用execute($array),$array数组中添加参数,避免绑定参数

记录获取

使用fetch()获取结果集中的每一条记录,返回索引和关联混合数组

参数为PDO::FETCH_ASSOC,返回关联数组

参数为PDO::FETCH_NUM,返回索引数组

参数为PDO::FETCH_BOTH,返回索引关联混合数组

fetchAll()获取结果集的每一条记录,返回二维数组

使用setFatchMode()设置获取模式,就可以避免每次获取都要设置模式

字段获取

columnCount()获取字段数

getColumnMeta()返回结果集中一列的元数据

PDOException:代表一个由 PDO 产生的错误。在自己的代码不应抛出一个 PDOException 异常

使用try catch捕获各种异常,包括连接异常、sql语句异常等

mamcache/memcached

一个高性能的分布式的内存对象缓存系统。通过在内存中维护一个巨大的hash表,维护内存中的数据

工作原理

PHP第一次查询数据时,会将数据存储在mamcache中,下次查询时,先访问mamcache。

安装

Linux下安装

基于libevent事件,所以必须先安装libevent库

Windows下安装

默认端口11211

memcache命令

CommandDescriptionExample

get

Reads a value

get mykey

set

Set a key unconditionally

set mykey 0 60 5

add

Add a new key

add newkey 0 60 5

replace

Overwrite existing key

replace key 0 60 5

append

Append data to existing key

append key 0 60 15

prepend

Prepend data to existing key

prepend key 0 60 15

incr

Increments numerical key value by given number

incr mykey 2

decr

Decrements numerical key value by given number

decr mykey 5

delete

Deletes an existing key

delete mykey

flush_all

Invalidate specific items immediately

flush_all

Invalidate all items in n seconds

flush_all 900

stats

Prints general statistics

stats

Prints memory statistics

stats slabs

Prints memory statistics

stats malloc

Print higher level allocation statistics

stats items

stats detail

stats sizes

Resets statistics

stats reset

version

Prints server version.

version

verbosity

Increases log level

verbosity

quit

Terminate telnet session

quit

PHP中使用memcache

类:memcache

连接:memcache::connect($host,$port)

1 php2 $memcache = newMemcache;3 $memcache->connect("localhost",11211) or die("could not connect");

其他方法

add:添加数据

set/replace:修改数据

get:获取数据

delete:删除数据

......

何时使用memcache

数据库中读出来的数据,方便下次使用

会话控制中使用

技巧

用sql语句作为key

用md5()修改sql语句,使sql语句变短,便于保存

会话控制:面向连接的可靠的连接方式,通过会话控制,判断用户的登录行为

cookie技术

服务器给客户端的一个文件,通过客户端的这个文件,保存用户信息,服务器根据文件,区分用户

设置cookie

setcookie($key,$value,$time):头信息,不能有任何输出

获取cookie

使用全局数组$_COOKIE[]获取cookie内容

删除cookieti

用setcookie设置$value为空或不设置,$time设置为0或不设置

session技术

在服务器中保存用户数据,会产生一个SessionID,可使用cookie和url传递该id

session配置

配置服务器端的php.ini

开启会话

session_start():让php的核心程序将和session有关的内建环境变量预先载入到内存中

开启一个会话

基于cookie的session,使用该函数不能有任何输出

返回已开启的会话

设置和获取session

使用$_SESSION[]设置和获取session

session_id()获取和设置session的id

删除session

$_SESSION=array();将session设置为空数组

删除cookie中的session

session_destory():销毁session

基于url传递sessionid,设置url的参数为session_name,session_start()后,会自动寻找该参数

常量SID,当用户关闭cookie时,该常量表示session_name和session_id;当用户开启cookie时,该常量为空

设置php.ini中的session.use_trans_sid=1,会使页面跳转(超链接、header、表单)后面自动添加SID

session高级技术

php.ini中,session的设置

session_name:设置存在cookie以及SID中的session_name

session.use_trans_sid:设置SID是否开启,开启后,可自动添加SID

session.save_path:设置session文件的保存位置,如果不设置,则不生成session文件

session.gc_maxlifetime:设置session文件有效时间,超过该时间session未刷新,session文件将失效

session.gc_probability和session.gc_divisor结合使用,定义session垃圾回收概率,算法为session.gc_probability/session.gc_divisor

session.use_cookie:设置session写入到cookie中

session.cookie_path:设置哪些文件的session写入到cookie中

session.cookie_lifetime:设置session的生命周期

session.save_handler:设置session写入方式及位置,当值为user时,可使用session_set_save_handler()函数

session_set_save_handler(open(),close(),read(),write(),destroy(),gc()):可自定义session文件的存储路径及存储方式等

使用该函数定义了各个方法,像往常一样使用session

open():在执行session_start()时,被调用

close():在执行session_write_close()时,被调用

read():在调用open()后,被调用

write():脚本结束时和session_write_close()执行时,被调用

destroy():当session使用session_destroy()或者session_regenerate_id()被销毁时,被调用

gc():由session.gc_probability和session.gc_divisor决定,任何时候军可能被调用

具体用法

将Session写入数据库

将Session写入Memcache

至此,PHP的基础学习算是完成了,需要多做多学,方能提高!

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
译者序 序言 前言 第一部分 高级PHP 第1章 开发思想 1 1.1 PHP与我 1 1.2 计划的重要性 2 1.3 编码规范 3 1.3.1 选择名字 3 1.3.2 使代码更易读 5 1.3.3 添加注释 8 1.3.4 选择谈话式名字 13 1.3.5 保持清晰一致的接口 15 1.3.6 将代码结构化为逻辑群 16 1.3.7 抽取单独的代码块 16 1.4 使用文件将函数分类 16 1.5 编写文档 17 1.6 一个API设计实例 18 1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6 特殊的OOP函数 39 2.5 链接清单 41 2.6 关联数组 49 2.6.1 多维数组 50 2.6.2 变量参数 51 2.7 多态和自变代码 62 2.7.1 动态函数生成程序 63 2.7.2 自变计数器 67 2.8 小结 68 第3章 应用程序设计:一个实际的例子 69 3.1 项目概观 69 3.2 比较技术环节 70 3.3 IRC网络基础 73 3.4 使应用程序适用于网络 75 3.5 连接网络的接口 76 3.5.1 接口结构 78 3.5.2 下游信息交流 79 3.5.3 上游信息交流 80 3.5.4 在共享的存储器中设置一个标志 83 3.5.5 用户接口 84 3.5.6 开发者的接口 84 3.5.7 HTML开发者的接口 85 3.5.8 代码开发者的接口 85 3.6 管理和安全 90 3.6.1 网络等级 90 3.6.2 PHP/Web服务器等级 90 3.6.3 数据库等级 90 3.6.4 IRC等级 91 3.7 执行 91 3.8 小结 91 第二部分 Web应用 第4章 Web应用程序思想 93 4.1 HTTP和“会话” 93 4.1.1 保持状态 93 4.1.2 用cookies进行“会话”ID传输 95 4.1.3 URL手工改写 95 4.1.4 动态路径 96 4.1.5 DNS技巧 98 4.1.6 实际应用中的折衷方案 99 4.1.7 PHP的内嵌“会话”库 100 4.2 安全性考虑 106 4.2.1 不要信任Web 107 4.2.2 不要重新发明加密法 111 4.2.3 开发组需要资深人员 118 4.2.4 认证 118 4.3 为什么适用性很重要 120 4.3.1 Web应用程序的“适用性” 121 4.3.2 打折式适用性工程 124 4.3.3 适用性:只要做就可以了 126 4.4 小结 126 第5章 基本网络应用程序策略 127 5.1 PHP正常表格 127 5.2 方案策划 133 5.2.1 团队合作 133 5.2.2 目录结构 134 5.3 CVS:一致版本系统 135 5.3.1 CVS间节省器: GUIS和CVS web 139 5.3.2 高级CVS 140 5.4 三层式应用程序 145 5.4.1 传统的客户端/服务器 145 5.4.2 PHP和多层应用程序 146 5.4.3 PHP和COM 147 5.4.4 PHP和Java 149 5.5 小结 150 第6章 PHP数据库访问 151 6.1 PHPLib:PHP基础库 151 6.1.1 PHPLib的历史 151 6.1.2 优点和缺点 152 6.1.3 重要文件 152 6.1.4 PHPLib客户化 152 6.2 数据库基本概念 153 6.2.1 可移植性 153 6.2.2 调试模式 154 6.2.3 错误处理 154 6.2.4 DB_Sql实例 154 6.2.5 会话 156 6.2.6 自动撤退 157 6.2.7 网页捕捉 157 6.2.8 串行器 157 6.2.9 会话实例 157 6.2.10 缩写I:page_open( ) 160 6.2.11 缩写II:purl( )、url( )和pself( ) 161 6.3 认证 162 6.3.1 PHP认证的优点 162 6.3.2 Auth实例 162 6.3.3 Auth内核 163 6.3.4 管理许可等级 165 6.3.5 位运算 166 6.4 小结 170 第7章 尖端应用程序 171 7.1 知识库 171 7.1.1 必要条件清单 172 7.1.2 条件清单 173 7.1.3 模板类 175 7.1.4 SQL递推式 179 7.1.5 身份确认 180 7.1.6 完成的产品 180 7.2 PHP和XML 180 7.2.1 什么是XML 180 7.2.2 DocBook 183 7.2.3 WML(Wireless Markup Language) 184 7.2.4 RDF—Resource Description Framework 184 7.2.5 XML文档 184 7.2.6 PHP和Expat 190 7.2.7 DOM—Document Object Model 197 7.2.8 LibXML—一个基于DOM的XML 分析 200 7.3 用WDDX相互交换数据 205 7.3.1 WDDX 205 7.3.2 挑战 205 7.3.3 可能的情况 206 7.3.4 用WDDX抽象化数据 206 7.3.5 WDDX数据类型 207 7.3.6 PHP和WDDX 208 7.3.7 WDDX函数 208 7.4 小结 210 第8章 案例研究 211 8.1 BizChek.com 211 8.1.1 Web 邮件 211 8.1.2 选择PHP 212 8.1.3 渴望升级 213 8.1.4 结论 213 8.2 SixCMS 213 8.2.1 公司背景 213 8.2.2 开放代码的商务 214 8.2.3 为什么用PHP 214 8.2.4 技术考虑事项 214 8.2.5 实际生活中的PHP 215 8.2.6 PHP:一个商业优势 216 8.3 Marketplayer.com 216 8.3.1 公司的背景 216 8.3.2 PHP产品 217 8.3.3 为什么选择PHP 217 8.3.4 在MarketPlayer.com产品开发中使用PHP的优势 217 8.3.5 PHP实际生活中的竞争 218 8.3.6 会话 218 8.3.7 PHP服务器集成 219 8.3.8 代码管理 219 8.3.9 前景 219 8.4 小结 219 8.5 参考 220 第三部分 深入研究PHP 第9章 扩充PHP 4.0:探究PHP内核 221 9.1 概述 221 9.2 什么是Zend?什么是PHP? 221 9.3 扩充可能性 222 9.3.1 外部模块 222 9.3.2 内嵌模块 223 9.3.3 Zend引擎 223 9.4 源代码格式 223 9.4.1 宏 224 9.4.2 内存管理 225 9.4.3 目录和文件函数 225 9.4.4 字符串处理 226 9.4.5 复杂类型 226 9.5 PHP的自动建造系统 226 9.6 创建扩充 228 9.7 编辑模块 229 9.7.1 编辑使用Make 229 9.7.2 手工编辑 229 9.8 使用扩充 230 9.9 故障处理 231 9.10 源代码讨论 231 9.10.1 模块结构 231 9.10.2 标题文件包含 231 9.10.3 声明输出函数 232 9.10.4 Zend函数块的声明 232 9.10.5 Zend模块的声明 234 9.10.6 Get_module()的执行 236 9.10.7 所有输出函数的实施 236 9.10.8 小结 237 9.11 接收变量 237 9.11.1 决定变量的数目 237 9.11.2 获取变量 238 9.11.3 处理数目变化的变量/选项参数 238 9.11.4 访问变量 240 9.11.5 处理参考变量传递的参数 243 9.11.6 为其他参数确保写安全 245 9.12 创建变量 246 9.12.1 概述 246 9.12.2 长(整)型 249 9.12.3 双精度(浮点)型 249 9.12.4 字符串 249 9.12.5 布尔型 250 9.12.6 数组 250 9.13 对象 253 9.14 资源 254 9.15 利用自动全局变量创建的宏 255 9.16 复制变量内容:复制构造函数 256 9.17 返回值 257 9.18 打印信息 258 9.18.1 phpinfo()中包含输出 259 9.18.2 执行信息 260 9.19 启动和关闭函数 261 9.20 调用用户函数 261 9.21 下一步该做些什么 265 9.22 参考:一些配置宏 265

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值