1.变量与常量
全局变量不能直接在自定义函数中调用,必须先在该用global 定义函数才能够使用。
可变变量,即在代码中动态声明变量。一般用变量的值来作可变变量的名称。格式为:$$+变量的名称。
通过预定变量获取访问页面用户的IP $_SERVER[‘REMOTE_ADD’]
常量定义方法:define(常量名称,常量值,是否对大小写敏感),大小写敏感用true 和false 来表示,默认为true
获取常量值,直接调用,不需要在前面添加$
判断常量是否被定义,defined(常量名称)
2.PHP注释
//和#都是PHP的注释,可以用/**/ 来进行多行注释。
3.PHP数据类型
整型(ingeter)
浮点型(float)
布尔值(boolean)注意大写
字符串(string)字符串可以用’’“” <<< 来定义
数组(array)索引可以是字符
对象(object)
NULL 1.变量未被赋任何值 2.变量被赋值NULL 3.被unset()函数处理过后的变量资源用于建立和使用外部资源
4.数据类型之间的转换
$shu=(int)$shu
$shu=(bool)$shu
$shu=(float)$shu
$shu=(string)$shu
$shu=(array)$shu
$shu=(object)$shu
5.运算符
字符串连接符,用“.”即可连接两个字符串
赋值运算包含:+= -= /= .=(连接字符串)%= *=
自增自减运算符:++ -- (前值递增和后值递增的区别在于,前值递增先加一在输出,后值递增先输出在加一++$a $a++)
位运算符:&=位与|=位或~=取反^=异或
逻辑运算符:&&或and ||或or Xor(真假为真,假真为真,真真为假,假假为假) !
=取反
比较运算:>、<、>=、<=、!=、==、===(值相等并且顺序和数据类型想同)、!==
6.包含文件语句
include(文件路径) 相当于加载PHP文件
include_once(文件路径) 与include相识,区别在于,如果代码重复不会包含
require(文件路径) 与include()相识
require_once(文件路径)
7.字符串
特殊字符在输出的时候需要通过转义才能输出,转义字符在字符前面加“\”符号。
\n 换行
\t 缩进
\”表示”字符
\\ 表示\ 字符
\$ 表示$ 字符
\r 表示回车
\f 换页符
如何写入换行:“\r\n”
字符串的截取:string substr(string,start,length)
string:要截取的字符串内容
start:开始截取的位置,正数从头开始,负数从尾开始,0在字符串中的第一个字符处开始。
length:需要截取的长度,正数从start开始,负数从末尾开始
nl2br() 函数把\n转化为THML里面的
strlen(string)函数返回字符的长度,相当与ASP里面的len()
统计字符出现的次数:substr_count (haystack,needle,offset,length)
haystack:要检查的字符串
needle:要插入的字符串
offset:开始搜索的位置
length:指定搜索的长度
查找函数:strpos(haystack,needle,[offset]) 返回第一次找到的位置查找不到返回空字符,找到第一个为0,第二个为if((string)(strpos(“123”,”4”)!=””))
haystack:要检查的字符串
needle:要查找的字符
offset:开始查找的位置
查找最后匹配内容:strrchr(string,needle) 返回最后匹配的位置,并返回位置后内容string:被查找的内容
needle:要查找的字符
查找返回函数:strstr(haystack, needle) 返回查找到匹配字符位置后面的内容
haystack:要检查的字符串
needle:要查找的字符
切割函数:explode(separator, str) 相当与ASP里面的split()
separator:切割的符号
str:要切割的字符串
切割等长函数:str_split(str,[length])
str:切割的符号
length:切割后每个字符的长度,默认为1
数组合并函数:implode(glue,pieces) 把数组合并成一条字符串
glue:字符合并处的连接符,默认为空,可以用“,”
pieces:要合并的数组
复制字符串:str_repeat(input,multiplier)
input:要重复的字符串
multiplier:被重复的次数
字符翻转函数:strrev(str)
替换函数:substr_replace( mixed, replacement,start)
string:要替换的字符串
replacement:要插入的字符串
start:开始替换的位置
替换内容函数str_replace(要替换的字符,替换成什么,内容)
8.变量函数
function 函数名称(参数1,参数2){
函数体
return 返回值
}
$变量名称=”函数名称"
$变量名称(参数1,参数2……)
9.工具类函数
终止程序并输出字符:exit(string)和die(string)
检查变量是否为空:empty($var) 如果变量等于0、NULL、FALSE、“”、‘0’都返回true
检查变量是否赋值:isset($var) 如果变量已赋值,返回TRUE,否则返回FALSE 检查是否为数字:is_numeric($var)
13.数组函数
对数组进行排序:sort()
对数组进行随机排序:shuffle()函数
14.操作文件
创建文件夹:mkdir(路径)
打开文件夹目录:opendir(路径) 可以赋值给变量$dir=opendir(“$add”) 读取文件夹目录:readdir(目录对象) 可以赋值给变量
关闭文件目录:closedir(目录对象)
删除目录:rmdir(目录对象) 只能删除空目录,否者出错
创建文件:fopen(路径,“x”)
打开文件:fopen(路径,模式)
读取文件:fread(文件对象,读取字符数) 读取全部内容,可用filesize()来获取长度写入内容:fwrite(文件对象,写入内容)
关闭文件:fclos(文件对象) 删除一个文件的时候要先关闭文件对象
复制文件:copy(要复制的文件路径,复制的文件路径)
删除文件:unlink(路径)
判断文件是否存在:File_exists(路径) 也可以判断目录是否存在
读取配置文件:parse_ini_file(路径,是否返回节点) 函数
例子:
[names] //配置文件内容
me = Robert
you = Peter
//如果为true,返回[]的节点头
$array=(parse_ini_file("test.ini",true));
$names=$array[“names”];
Echo $name[“me”];
重定位指针:fseek(文件对象,指针位置) 开头为0
读取一行数据:fgets(文本对象)
判断是否到文件尾:feof(文件对象)
15.SESSION和COOKIE
打开session会话:session_start()
创建一个会话:session_register(“变量名”)
判断会话是否存在:session_is_registered(“变量名”) 存在返回true,不存在返回FALSE
读取session的变量:$_SESSION[“变量名”] 也可以直接创建
释放session变量:session_unset(“变量名”) 不填写变量名则释放全部会话
删除session变量:session_destroy(“变量名") 不填写变量名则删除全部会话判断cookie是否存在:isset($_COOKIE[“变量名”])
创建cookie并赋值:$_COOKIE["变量名"] 创建并设置
清空cookie:$_COOKIE["变量名"]=””
16.文件上传
上传的文件会先以PHP开头.tmp后缀结尾的文件形式存储在系统临时文件夹C:\Windows\Temp下,用户只需要用move_uploaded_file()将文件移动指定目录即可。
移动文件:move_uploaded_file(原路径,目标路径)
获取文件后缀:利用strrchr()查找最后一个“.”
获取上传文件名:$_FILES["控件名"]["name"]
获取上传文件类型:$_FILES["控件名"]["type"]
获取上传文件大小:$_FILES["控件名"]["size"] 如果用户没有上传文件,则文件大小为0 获取上传临时文件夹路径:$_FILES["控件名"]["tmp_name"] 没有上传文件,则该值为none 上传失败提示:$_FILES["控件名"]["error"]
上传文件类型:
(1) 图片文件:image/jpg(.jpg)、image/gif(.gif)、image/jpeg(.jpeg)、image/png(.png)、image/x-png(.png)、image/bmp(.bmp)。
(2) 纯文本文件:text/txt。
(3) HTML文件:text/html。
(4) 二进制文件或数据流:application/octet-stream
(5) 音频格式文件:audio/basic。
(6) 视频格式文件:video/mpeg。
实例:
if ($_FILES["file"]["error"] > 0){ //判断文件是否上传失败
die("上传失败,错误信息:". $_FILES["file"]["error"] . "
"); //输出错误信息并提示
}else{
$nowtime=getdate();
$file_dir="tuku"; //设置存放文件夹
$file_scname=$nowtime[0];
$file_name=$_FILES["file"]["name"];
$file_type=$_FILES["file"]["type"];
$file_size=$_FILES["file"]["size"];
$file_tmp_name=$_FILES["file"]["tmp_name"];
echo "上传文件名:" .$file_name. "
"; //输出上传信息
echo "文件类型: " .$file_type. "
";
echo "文件大约:" .($file_size / 1024)."KB
";
echo "临时文件夹路径: " .$file_tmp_name."
";
$file_size=round($file_size/1024); //四舍五入文件大小
if($file_size>2000){
ls_file_exists(); //调用自定义函数,删除临时垃圾文件
exit("上传失败,文件不得超过2M");
}
$houzui=strrchr($_FILES["file"]["name"],"."); //获取文件后缀
if(substr($file_type,0,strpos($file_type,"/",0))=="image"){ //判断是否图片格式
if(!(file_exists("./".$file_dir))){ //判断存放文件夹是否存在,不存在创建mkdir("./".$file_dir);
}
$dir_file_name="./".$file_dir."/".$file_scname.$houzui; //上传文件的完整路径
move_uploaded_file($_FILES["file"]["tmp_name"],$dir_file_name);
echo $file_scname.$houzui."图片上传成功
";
echo ""; //显示图片}else{
ls_file_exists(); //调用自定义函数,删除临时垃圾文件
echo "只能上传图片文件!";
}
}
function ls_file_exists(){
global $file_tmp_name;
if(file_exists($file_tmp_name)){ //判断临时文件是否存在,存在删除unlink($file_tmp_name);
echo "临时文件已经删除
";
}
else
{
echo "临时文件不存在
";
}
}
17.日期函数
获取当前时间:date(“Y-m-d H:i:s”)
当前时间加1天:date("Y-m-d H:i:s", strtotime("+1 day"))
18.PHP设置编码
header("Content-Type: text/html; charset=GB2312");
解决AJAX转码问题,由于AJAX是由UTF-8编码组成的,所以跳转到PHP GB2312 的页面就会出现乱码,通过mb_convert_encoding($STR,'GB2312','UTF-8')把内容转换即可。
MYSQL数据库连接
连接数据库:mysql_connect(“本地的IP地址”,”MYSQL登录账号名”,” MYSQL登录密码”,)
例子:
$conn=mysql_connect("127.0.0.1","root","123456"); //连接数据库
if(!$conn) //判断连接是否成功!
{
die("数据库连接失败");
}
else
{
echo "数据连接成功!"."
";
}
选择数据库:mysql_select_db(“数据库名”,conn对象)
例子:
$db=mysql_select_db("db_test",$conn);
if(!$db)
{
die("数据不存在");
}
else
{
echo "数据库存在";
}
执行SQL语句:mysql_query(SQL语句) //只能执行添加、删除、修改
例子:
$sql="insert into userb(user_name)value(‘test’);
$rs=mysql_query($sql) or die("SQL语句执行失败");
获取查询到的记录数:mysql_numrows(记录集对象)
例子:
$rs_count=mysql_numrows($rs);
获取查询后的某条记录:mysql_result(记录集对象,第几条记录,要获取的字段名)
例子:从0行开始
$rs_count=mysql_numrows($rs);
for($i=0;$i<$rs_count;$i++){
echo mysql_result($rs,$i,"user_name");
}
逐行输出记录(数组):mysql_fetch_row(记录集对象)
说明:类似do whlie rs.eof 每次赋值给数组,并且每执行完自动跳转到下一条记录,到末尾返回FALSH 例子:
while($rows=mysql_fetch_row($rs))
echo $rows[1]."
";
逐行输出记录(字段名):mysql_fetch_array(记录集对象)
说明:类似mysql_fetch_row的用法,区别在于读取记录集的时候可以用字段名
例子:
while($rows=mysql_fetch_array($rs))
echo $rows*‘user_name’]."
";
数据表分页显示代码:
require("conn.php"); //加载连接数据库页面
$conn=mysql_select_db("db_test",$conn_str); //打开指定数据库
$sql="select * from userb";
$rs_sql=mysql_query($sql) or die("SQL语句执行失败");
$pagesize=2; //每页显示两条记录
$rs_count=mysql_numrows($rs_sql);
if($rs_count%$pagesize==0) //判断是否能整除记录数
$total=(int)($rs_count/$pagesize);
else
$total=(int)($rs_count/$pagesize)+1;
if(isset($_GET['page'])){ //获取当前是第几页
$page=(int)$_GET['page'];
if($page<1) //如果小于第一页,则等于第一页,如果大于最后一页则等于最后一页
$page=1;
elseif($page>$total)
$page=$total;
}else{
$page=1; //如果当前页数为空,赋值第一页
}
$start=($page-1)*$pagesize; //数据表第几行开始读取,第一行为0,所以-1 $sql="select * from userb limit ".$start.",".$pagesize;
$rs_sql=mysql_query($sql);
while($rs=mysql_fetch_array($rs_sql)){
echo "
echo "
echo "
echo "
echo "
echo "
echo "
echo "
}
?>