1.开始结束标记<? ... ?>
2.定义变量:$变量名 例:$str="锦清笋";不需要指明数据类型
3.输出语句:
(1)echo "hello world!";---echo命令
(2)print();输出语句,是函数,有返回值。输出成功返回1,失败返回0。
(3)printf();格式化输出字符串。例:printf("%d,%f",12,12.3);
(4)sprintf();格式化拼接字符串,不是输出语句,只能将字符串拼接。
(5)print_r();输出数组、对象等复合数据类型
4.数据类型:
(1)简单数据类型:
Boolean 布尔型
string 字符串型
integer 整型
float 浮点型
(2)复合数据类型:
array 数组
object 对象
(3)特殊数据类型:
resource 资源
null 空值
5.数据类型转换:
在变量前加上括号括起来的类型名称即可。
6.检测数据类型:
is_bool 检查变量是否是布尔类型
is_string ....
is_float或is_double ....
is_integer 或 is_int ....
is_null ....
is_array ....
is_object ....
is_numeric 检测变量是否为数组或由数字组成的字符串
7.声明和使用常量:
定义语法:define(‘PRICE’,100);
echo PRICE;
8.变量作用域:
局部变量:即在函数的内部定义的变量,其作用域是所在的函数
全局变量:即被定义在所有函数以外的变量,其作用域是整个php文件,但是在用户定义的函数内部不可用。想在用户定义的函数内部使用全局变量,要使用global关键词声明。
例:$a=123;
function test()
{
global $a;
echo $a;
}
静态变量:能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值。使用静态变量时,先要用关键字static来声明变量,需要把关键字static放在要定义的变量之前。
9.预定义变量:通过预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。如:
$GLOBALS,$_SERVER,$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$_FILES.
10.字符串运算符:句号:“.”;连接字符串
特别是拼写sql语句时:".$变量名."
11.逻辑运算符:逻辑异或:^或xor 当一个为真,一个为假时,结果为真,其他为假。
恒等:===
优先级:||在and之前,or在and之后。
12.@错误屏蔽:@错误屏蔽运算符可以对程序中出现错误的表达式进行操作,进而对错误进行屏蔽,其使用的方法就是在错误的表达式前加“@”即可。它只是对错误信息进行屏蔽,并没有真正解决错误。
13.定义和调用函数:函数名不区分大小写
function test($var1,$var2)
{
函数体
}
test($var1,$var2);
函数的返回值:使用return返回单个值,和使用list()语言结构返回多个值。
传值调用:$变量名
传址调用:&$变量名
14.Form表单:
两种提交方式:get:将表单数据当做url的一部分传过去;url格式:http://地址:端口/目录/文件?var1=value1&...varn=valuen最长1024k
post:相比get而言,更安全,并不会导致因数据过长而引起url的数据丢失
使用超链接传值时必须用get来接收:<a href="user_add.php?uid=<?=$uid?>">ADD</a> 接收:$uid=$_GET["uid"];
注意:<?=...?>的格式只有在没有判断语句时才能使用。
对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);
15.PHP连接数据库:
步骤: 一、建立连接------mssql_connect(server,uid,pwd);
二、指定database-------mssql_select_db(databasename);
三、执行sql------mssql_query($sql,$link);
四、处理记录集-------资源类型数据,格式:bof---数据---eof
五、以特定格式读取数据-----mssql_fetch_array()....
六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();
16.数组:php的数组由键值和value值组成
定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值
相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值
(2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值
(3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值
(4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值
(5)key(数组名);----返回当前指针指向的元素key值
(6)current(数组名);----返回当前指针指向的元素value值
(7)next(数组名);----挪动当前数组指针到下一步
(8)reset(数组名);----恢复数组指针,指向第0个元素
(9)end(数组名);----将指针挪向最后一个元素
(10)prev(数组名);----将指针向前挪动一位
(11)foreach(数组名 as $key=>$value)
{
$key是键值,$value是value值,实现数组遍历
}
(12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中
(13)array_shift(数组名);----返回数组中第一个元素值
(14)array_pop(数组名);----返回数组最后一个元素值
(15)array_push(数组名,value);----向数组中追加元素
(16)array_unshift(数组名,value);----在数组最前面添加元素
(17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组
(18)count();----返回个数
(19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组
(20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true
(21)rsort(数组名);----从大到小,逆序排列数组value值
(22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组
(23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组
(24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。
(25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除
(26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组
(27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串
(28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组
(29)shuffle(数组名);----用于将数组进行随机排序
(30)array_sum(数组名);----对数值型数组元素值进行求和
(31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度
17.Cookie和会话控制:
Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。
存在server端的是session,存在client端的是cookie,它们用来存储全局变量。
设定Cookie值:setcookie("名","值");
通过Cookie数组取值:$_cookie["名"];
设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。
删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。
Cookie数组:setcookie("名[key]","值"); 使用foreach读取。
在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。
会话ID的传送
会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。
Cookie传送方式:
这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。
URL传送方式:
在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:<a href="user_add.php?uid=<?=$uid?>">ADD</a>
会话ID的生成:
PHP的会话函数会自动处理ID的创建,但也可以通过手工方式创建会话ID。它必须是不容易被人猜出来的,否则有安全隐患。
一般推荐生成会话ID使用随机数发生器函数srand(),函数声明如下:
srand((double)microtime()*1000000);
在调用该函数后,要想生成一个唯一的会话ID,还必须使用下面的语句:
md5(unique(rand()));
Session会话:
创建会话的步骤:启动一个会话,注册会话变量,使用会话变量和注销会话变量。
(1)启动一个会话:》通过session_start();函数创建会话,函数声明为:bool session_start(void);
》通过设置php.ini自动创建会话:设置php.ini中的session.auto_start选项,激活该选项即可自动创建会话(配置值改为1),但是使用该方法启动auto_start会导致无法使用对象作为会话变量。
(2)注册会话变量:会话变量被启动后,全部保存在数组$_session中。通过数组$_session,直接给该数组提添加一个元素即可创建一个会话变量: $_session[session_name]=session_value;
(3)使用会话变量:if(!empty($_session[session_name])){$myvalue=$_session[session_name]}
(4)注销会话变量:注销某个session成员:unset($_session[session_name])
注销所有会话功能:$_session=array();然后使用session_destory();函数清除会话ID。
18.字符串处理:
(1)获取字符串长度:int strlen($str);
(2)将指定字符串转换成大写:strtoupper($str);
(3)将首字母转换成大写:ucfirst($str);
(4)字符串与HTMl相互转换:htmlspecialchars($str);----将字符串中某些特殊字符转化成html格式
(5)去除字符串的空格:trim()---去两遍空格,ltrim()----去左边空格,rtrim()----去右边空格
(6)substr_count($str,"value");查询某字符在目标字符串中出现的个数
(7)strpos($str,"value");----定位字符位置,返回int
(8)防止单引号破坏sql语句:自动转义函数:addslashes();
<?php
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
(9)截取字符串:substr($str,start_int,end_int);---return $newstr
(10)填充字符串:string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )
例:<?php
$input = "Alien";
echo str_pad($input, 10); // produces "Alien "
echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
echo str_pad($input, 6 , "___"); // produces "Alien_"
?>
(11)字符串的比较:int strcmp ( string str1, string str2 )----按逐个字符的ascll码进行比较,如果返回等于0,则相等;大于0,则str1大于str2;小于0,则str1小于str2。
(12)数字字符串的格式化:string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )
该函数可以有1个,2个,或4个参数,但不能使三个。decimals意思是取小数点后几位,dec_point用来代替小数点,thousands_sep用来代替千位分隔符。
(13)查找和替换:
查找:string strstr ( string haystack, string needle )
例:<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
?>
替换:mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )----区分大小写
mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count] )----不区分大小写
(14)URL字符串解析:array parse_url ( string url )将url地址按照其构成解析成一个特殊数组。数组结构为:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)