文档库 最新最全的文档下载
当前位置:文档库 › PHP学习笔记

PHP学习笔记

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 "".$rs['user_id']."";

echo "".$rs['user_name']."";

echo "".$rs['user_pass']."";

echo "".$rs['user_sex']."";

echo "".$rs['user_ming']."";

echo "".$rs['user_phon']."";

echo "";

}

?>

相关文档