php语法规则:
文件命名: php文件名不能是中文
php脚本必须以 ; 作为结束符
文件后缀名必须是 .php
php文件中可以嵌套html代码,也可以在Html里面嵌入php代码
<?php ?>
$变量名: 变量名不能以数字开头,
与 C 语言等强类型的编程语言不同,PHP 是一门松散类型的语言,即不需要在设置变量之前声明该变量。根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型,且变量会在使用时被自动声明,这一属性给 Web 编程带来了极大的灵活性。
数据类型:
int string float bool
Array object
resource null
变量的数据类型随着值的变化而变化
输入输出 echo print() print_r() printf() sprintf() var_dump() ** 必须要知道这几个输出语句的区别** 笔试题中
echo 与 print 区别 相同点: 都是语言结构, 不同点: echo 可以输出多个字符串或者变量没有返回值,而 print 只能输出一个字符串或者变量并且有返回值.
sprintf() 与printf() 功能相同, 不同的是,printf() 将输出格式化之后的字符串 有返回值, sprintf()不输出而是返回格式化之后的字符串 有返回值
php常量:
define() 函数用于定义常量。一个常量一旦被定义,就不能再改变或者取消定义
<?php
define("CONSTANT", "你好!");
echo CONSTANT;
?>
定义常量和定义变量的区别:
常量前面没有美元符号($)
常量只能用 define() 函数定义,而不能通过赋值语句
常量可以不用理会变量范围的规则而在任何地方定义和访问
常量一旦定义就不能被重新定义或者取消定义
常量的值只能是标量
php函数:
function_exists() 函数用于检测函数是否被定义,检测的函数可以是 PHP 的内置函数,也可以是用户的自定义函数。如果被检测的函数存在则返回 TRUE ,否则返回 FALSE 。
语法:
在实现你的工程的时候必须注意编码统一.
ide 编码 project 编码 file页面编码 数据编码必须一致
php基础课堂案例:
--------demo1.php
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head></head>
<body>
<?php
echo 'php 我来了';
?>
</body>
</html>
------demo2.php
<?php
$title="这是我的第一个网页";
$charset='utf-8';
$content="哈哈! php 我有点喜欢你了!";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="<?php echo $charset; ?>">
<title><?php echo $title; ?></title>
</head>
<body>
<div style="color: red; border: 1px solid blue; width:200px; height: 30px;">
<?php echo $content; ?>
</div>
</body>
</html>
------demo3.php
$title="这是一个表单练习";
#第一步: 判断用户是否点击了提交按钮
if(isset($_POST['sub'])){
#第二步; 获取数据
$uname=$_POST['userName'];
$upwd=$_POST['userPwd'];
#进行你的业务逻辑操作
echo '你输入的用户名是:'.$uname.'<br/>你输入的密码是'.$upwd;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>
</head>
<body>
<form action="demo2.php" method="post" name="form1">
<input type="text" name="userName" /><br>
<input type="text" name="userPwd" /><br>
<input type="submit" name="sub" value="提交" />
</form>
</body>
</html>
-------demo4.php
<?php
header("content-type: text/html; charset=utf-8");
$title="数组与网页练习--动态构建表单数据";
$data=array(
'xuesheng'=>array('学生用书','学生教材','教辅用书','课外读物','考试题集'),
'mingzhu'=>array('名著','中国古典','世界名著','英文原著'),
'kaosi'=>array('考试用书','公务员','会计师','医药师'),
'ertong'=>array('儿童读物','看图识字','动漫人物'),
'wuxia'=>array('武侠小说','金庸小说','古龙小说','玄幻小说')
);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<?php
//动态构建表单的行与列
foreach($data as $key=>$books){
//构建标题行与列
?>
<tr style="background-color: yellow;"><th colspan="2"><?php echo $books[0] ;?></th></tr>
<tr><td><?php echo $books[1]; ?></td><td><?php echo $books[2];?></td></tr>
<tr><td><?php echo $books[3]; ?></td><td><?php echo $books[4]; ?></td></tr>
<?php
}
/**
* 代码解释:
* 循环数组
* 找到数组的规律: 每个数组元素的第一个元素为标题
* 依次构建表格的行与列, 把数据动态的添加到表格中
*/
?>
</table>
</body>
</html>
-------demo5.php
<?php
$shoplist = array(
array("name"=>"笔记本电脑","price"=>4880,"num"=>6), // 每一行就表示一组数据
array("name"=>"鼠标垫","price"=>5,"num"=>6),
array("name"=>"手机ip4s","price"=>1880,"num"=>2)
);
$sum=0;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>购物车--计算表单价格</title>
<style type="text/css">
table{cellpadding:0; cellspacing:0; border-color: blue;}
</style>
</head>
<body>
<table border="1">
<tr> <th>商品名</th><th>商品价格</th><th>商品数量</th><th>小计</th><th>操作</th></tr>
<!--循环动态构建网页数据-->
<?php
foreach($shoplist as $key=>$shop){
?>
<tr>
<td><?php echo $shop['name'];?></td>
<td><?php echo $shop['price'];?></td>
<td><?php echo $shop['num'];?></td>
<td><?php echo $shop['num'] * $shop['price'] ;?></td>
<td><span>修改</span><span>删除</span></td>
</tr>
<?php
$sum+=$shop['num'] * $shop['price'];
}
?>
<tr><td>总计</td><td colspan="4"><?php printf("%.2f",$sum); ?>元</td></tr>
</table>
</body>
</html>
------demo6.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>循环输出5个table</title>
<style type="text/css">
td{border: 1px solid cadetblue;}
</style>
</head>
<body>
<?php
for($i=1;$i<=5;$i++){
?>
<table cellpadding=0; cellspacing=0; style="width: 80%; height: auto; margin-top: 5px; border: 1px solid cadetblue;">
<tr><td style="width:10%; text-align: center;">留言人:</td><td style="width:30%"></td><td style="width: 10%;text-align: center">留言时间:</td><td style="width: 30%;"></td></tr>
<tr><td style="10%;text-align: center;">留言内容:</td><td colspan="3" style="width: 70%; height: 100px;"></td></tr>
</table>
<?php
}
?>
</body>
</html>
-------demo7.php
<?php
$tableInf=array(); //定义数组用于存放表单的数据
#php 对表单数据进行处理
if(isset($_POST['tj'])){ //判断用户是否点击提交
//获取数据
$tableInf['tr']=$_POST['tr'];
$tableInf['td']=$_POST['td'];
$tableInf['size']=$_POST['size'];
$tableInf['background']=$_POST['background'];
$tableInf['width']=$_POST['width'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>自动创建表格</title>
</head>
<body>
<form action="demo3.php" method="post" name="form1">
请输入表格的行数:<input type="text" name="tr" /><br />
请输入表格的列数:<input type="text" name="td"/><br />
请输入表格的边框:<input type="text" name="size" /><br />
请选择表格的边框颜色:
<select name="background">
<option value="#ff0000">红色</option>
<option value="#0000ff">蓝色</option>
<option value="#cccccc">灰色</option>
</select><br />
请输入表格的宽度:<input type="text" name="width" /><br />
<input type="submit" name="tj" value="提交" />
</form>
<div style="width:100%; height: 500px; border: 1px solid gray;">
<h1>动态生成的表单在这里</h1><br>
<?php
#判断$tableInf 变量里面是否有数据
if( ! empty($tableInf) ){
?>
<table>
<?php
for($i=1;$i<=$tableInf['tr'];$i++){ //外层循环控制行
?>
<tr>
<?php
for($j=1;$j<=$tableInf['td'];$j++){ //内层循环控制列
?>
<td style="border: <?php echo $tableInf['size'];?>px solid <?php echo $tableInf['background'];?>; width: <?php echo $tableInf['width'];?>px; height: 20px; "></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</div>
</body>
</html>
一.cookie
cookie 是服务器留在用户计算机中的小文件,网站可以用它来识别访问网站的计算机。
创建 cookie
通过 setcookie() 函数来创建一个 cookie ,成功返回 TRUE ,否则返回 FALSE 。
bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )
<?php
setcookie("username", "xiaoli", time()+3600);
?>
我们也可以指定cookie的有效路径
<?php
setcookie("username", "xiaoli", time()+3600, "/", ".5idev.com");
?>
该例子使用了 path 和 domain 参数,即在 5idev.com 域名的 / 路径下该 cookie 都有效(即全站有效)。
读取 cookie
PHP 内置了 $_COOKIE 变量以访问设置的 cookie 值。
例子:
<?php
echo $_COOKIE["username"]; //输出 xiaoli
?>
销毁 cookie
可以通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :
<?php
setcookie("username", "", time()-3600);
?>
提示:
由于协议限制,在设置 cookie 之前,不能有任何内容向浏览器输出
cookie 不会在设置的当前页生效,要访问设置的 cookie ,必须是另一个页面在过期之前访问
由于 cookie 信息存储于用户的计算机中,那么就有可能伪造 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可
二、sesssion
session 是一种客户与网站(服务器)更为安全的对话方式。一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。
常见的网上购物车,就是一个session会话的典型应用。我们在预定商品的时候,将选择好的商品放入购物车,实际就是开启一个商品的session会话。如果对选择的商品下了订单,则会将对应信息写入数据库;如果最终没有下订单,在用户关闭浏览器或退出登陆的时候,则会关闭session会话,选择的商品随即失效。
session 会话会为每一个开启了 session 会话的访问者建立一个唯一的会话 ID ,用于识别用户。该会话 ID 可能存储于用户电脑的 cookie 内,也可能通过 URL 来传递。而对应的具体 session 值会存储于服务器端,这也是与 cookie 的主要区别,并且安全性相对较高。
session_start();
销毁 session
session_unregister("username"); //注销 session 变量
session_unset(); //注销 session 会话
文件命名: php文件名不能是中文
php脚本必须以 ; 作为结束符
文件后缀名必须是 .php
php文件中可以嵌套html代码,也可以在Html里面嵌入php代码
<?php ?>
$变量名: 变量名不能以数字开头,
与 C 语言等强类型的编程语言不同,PHP 是一门松散类型的语言,即不需要在设置变量之前声明该变量。根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型,且变量会在使用时被自动声明,这一属性给 Web 编程带来了极大的灵活性。
数据类型:
int string float bool
Array object
resource null
变量的数据类型随着值的变化而变化
输入输出 echo print() print_r() printf() sprintf() var_dump() ** 必须要知道这几个输出语句的区别** 笔试题中
echo 与 print 区别 相同点: 都是语言结构, 不同点: echo 可以输出多个字符串或者变量没有返回值,而 print 只能输出一个字符串或者变量并且有返回值.
sprintf() 与printf() 功能相同, 不同的是,printf() 将输出格式化之后的字符串 有返回值, sprintf()不输出而是返回格式化之后的字符串 有返回值
php常量:
define() 函数用于定义常量。一个常量一旦被定义,就不能再改变或者取消定义
<?php
define("CONSTANT", "你好!");
echo CONSTANT;
?>
定义常量和定义变量的区别:
常量前面没有美元符号($)
常量只能用 define() 函数定义,而不能通过赋值语句
常量可以不用理会变量范围的规则而在任何地方定义和访问
常量一旦定义就不能被重新定义或者取消定义
常量的值只能是标量
php函数:
function_exists() 函数用于检测函数是否被定义,检测的函数可以是 PHP 的内置函数,也可以是用户的自定义函数。如果被检测的函数存在则返回 TRUE ,否则返回 FALSE 。
语法:
在实现你的工程的时候必须注意编码统一.
ide 编码 project 编码 file页面编码 数据编码必须一致
php基础课堂案例:
--------demo1.php
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head></head>
<body>
<?php
echo 'php 我来了';
?>
</body>
</html>
------demo2.php
<?php
$title="这是我的第一个网页";
$charset='utf-8';
$content="哈哈! php 我有点喜欢你了!";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="<?php echo $charset; ?>">
<title><?php echo $title; ?></title>
</head>
<body>
<div style="color: red; border: 1px solid blue; width:200px; height: 30px;">
<?php echo $content; ?>
</div>
</body>
</html>
------demo3.php
$title="这是一个表单练习";
#第一步: 判断用户是否点击了提交按钮
if(isset($_POST['sub'])){
#第二步; 获取数据
$uname=$_POST['userName'];
$upwd=$_POST['userPwd'];
#进行你的业务逻辑操作
echo '你输入的用户名是:'.$uname.'<br/>你输入的密码是'.$upwd;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>
</head>
<body>
<form action="demo2.php" method="post" name="form1">
<input type="text" name="userName" /><br>
<input type="text" name="userPwd" /><br>
<input type="submit" name="sub" value="提交" />
</form>
</body>
</html>
-------demo4.php
<?php
header("content-type: text/html; charset=utf-8");
$title="数组与网页练习--动态构建表单数据";
$data=array(
'xuesheng'=>array('学生用书','学生教材','教辅用书','课外读物','考试题集'),
'mingzhu'=>array('名著','中国古典','世界名著','英文原著'),
'kaosi'=>array('考试用书','公务员','会计师','医药师'),
'ertong'=>array('儿童读物','看图识字','动漫人物'),
'wuxia'=>array('武侠小说','金庸小说','古龙小说','玄幻小说')
);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<?php
//动态构建表单的行与列
foreach($data as $key=>$books){
//构建标题行与列
?>
<tr style="background-color: yellow;"><th colspan="2"><?php echo $books[0] ;?></th></tr>
<tr><td><?php echo $books[1]; ?></td><td><?php echo $books[2];?></td></tr>
<tr><td><?php echo $books[3]; ?></td><td><?php echo $books[4]; ?></td></tr>
<?php
}
/**
* 代码解释:
* 循环数组
* 找到数组的规律: 每个数组元素的第一个元素为标题
* 依次构建表格的行与列, 把数据动态的添加到表格中
*/
?>
</table>
</body>
</html>
-------demo5.php
<?php
$shoplist = array(
array("name"=>"笔记本电脑","price"=>4880,"num"=>6), // 每一行就表示一组数据
array("name"=>"鼠标垫","price"=>5,"num"=>6),
array("name"=>"手机ip4s","price"=>1880,"num"=>2)
);
$sum=0;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>购物车--计算表单价格</title>
<style type="text/css">
table{cellpadding:0; cellspacing:0; border-color: blue;}
</style>
</head>
<body>
<table border="1">
<tr> <th>商品名</th><th>商品价格</th><th>商品数量</th><th>小计</th><th>操作</th></tr>
<!--循环动态构建网页数据-->
<?php
foreach($shoplist as $key=>$shop){
?>
<tr>
<td><?php echo $shop['name'];?></td>
<td><?php echo $shop['price'];?></td>
<td><?php echo $shop['num'];?></td>
<td><?php echo $shop['num'] * $shop['price'] ;?></td>
<td><span>修改</span><span>删除</span></td>
</tr>
<?php
$sum+=$shop['num'] * $shop['price'];
}
?>
<tr><td>总计</td><td colspan="4"><?php printf("%.2f",$sum); ?>元</td></tr>
</table>
</body>
</html>
------demo6.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>循环输出5个table</title>
<style type="text/css">
td{border: 1px solid cadetblue;}
</style>
</head>
<body>
<?php
for($i=1;$i<=5;$i++){
?>
<table cellpadding=0; cellspacing=0; style="width: 80%; height: auto; margin-top: 5px; border: 1px solid cadetblue;">
<tr><td style="width:10%; text-align: center;">留言人:</td><td style="width:30%"></td><td style="width: 10%;text-align: center">留言时间:</td><td style="width: 30%;"></td></tr>
<tr><td style="10%;text-align: center;">留言内容:</td><td colspan="3" style="width: 70%; height: 100px;"></td></tr>
</table>
<?php
}
?>
</body>
</html>
-------demo7.php
<?php
$tableInf=array(); //定义数组用于存放表单的数据
#php 对表单数据进行处理
if(isset($_POST['tj'])){ //判断用户是否点击提交
//获取数据
$tableInf['tr']=$_POST['tr'];
$tableInf['td']=$_POST['td'];
$tableInf['size']=$_POST['size'];
$tableInf['background']=$_POST['background'];
$tableInf['width']=$_POST['width'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>自动创建表格</title>
</head>
<body>
<form action="demo3.php" method="post" name="form1">
请输入表格的行数:<input type="text" name="tr" /><br />
请输入表格的列数:<input type="text" name="td"/><br />
请输入表格的边框:<input type="text" name="size" /><br />
请选择表格的边框颜色:
<select name="background">
<option value="#ff0000">红色</option>
<option value="#0000ff">蓝色</option>
<option value="#cccccc">灰色</option>
</select><br />
请输入表格的宽度:<input type="text" name="width" /><br />
<input type="submit" name="tj" value="提交" />
</form>
<div style="width:100%; height: 500px; border: 1px solid gray;">
<h1>动态生成的表单在这里</h1><br>
<?php
#判断$tableInf 变量里面是否有数据
if( ! empty($tableInf) ){
?>
<table>
<?php
for($i=1;$i<=$tableInf['tr'];$i++){ //外层循环控制行
?>
<tr>
<?php
for($j=1;$j<=$tableInf['td'];$j++){ //内层循环控制列
?>
<td style="border: <?php echo $tableInf['size'];?>px solid <?php echo $tableInf['background'];?>; width: <?php echo $tableInf['width'];?>px; height: 20px; "></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</div>
</body>
</html>
一.cookie
cookie 是服务器留在用户计算机中的小文件,网站可以用它来识别访问网站的计算机。
创建 cookie
通过 setcookie() 函数来创建一个 cookie ,成功返回 TRUE ,否则返回 FALSE 。
bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )
<?php
setcookie("username", "xiaoli", time()+3600);
?>
我们也可以指定cookie的有效路径
<?php
setcookie("username", "xiaoli", time()+3600, "/", ".5idev.com");
?>
该例子使用了 path 和 domain 参数,即在 5idev.com 域名的 / 路径下该 cookie 都有效(即全站有效)。
读取 cookie
PHP 内置了 $_COOKIE 变量以访问设置的 cookie 值。
例子:
<?php
echo $_COOKIE["username"]; //输出 xiaoli
?>
销毁 cookie
可以通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :
<?php
setcookie("username", "", time()-3600);
?>
提示:
由于协议限制,在设置 cookie 之前,不能有任何内容向浏览器输出
cookie 不会在设置的当前页生效,要访问设置的 cookie ,必须是另一个页面在过期之前访问
由于 cookie 信息存储于用户的计算机中,那么就有可能伪造 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可
二、sesssion
session 是一种客户与网站(服务器)更为安全的对话方式。一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。
常见的网上购物车,就是一个session会话的典型应用。我们在预定商品的时候,将选择好的商品放入购物车,实际就是开启一个商品的session会话。如果对选择的商品下了订单,则会将对应信息写入数据库;如果最终没有下订单,在用户关闭浏览器或退出登陆的时候,则会关闭session会话,选择的商品随即失效。
session 会话会为每一个开启了 session 会话的访问者建立一个唯一的会话 ID ,用于识别用户。该会话 ID 可能存储于用户电脑的 cookie 内,也可能通过 URL 来传递。而对应的具体 session 值会存储于服务器端,这也是与 cookie 的主要区别,并且安全性相对较高。
session_start();
销毁 session
session_unregister("username"); //注销 session 变量
session_unset(); //注销 session 会话