<?php ?> php语法写在这里面
$ php变量开始
define 定义常量
echo "" 输出字符 可以输出一个以上的字符串,比print快;
print,只能输出一个字符串,始终返回1。
. 字符串连接
; 以分号结尾
// # /**/ 三种注释
变量区分大小写 关键词 不区分
var_dump() 会返回变量的数据类型和值
1、 字符串:引号(单引号或双引号)内的任何文本;
$str="Hello";
var_dump($str);
结果为:string 'Hello' (length=5)
2、 整数:
整数规则:
整数必须有至少一个数字(0-9)
整数不能包含逗号或空格
整数不能有小数点
整数正负均可
可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
$num=0x345;
var_dump($num);
3、 浮点数:有小数点或指数形式的数字;
$decimal = 0.23;
$decimal2=2e3;
var_dump($decimal);
var_dump($decimal2);
运行结果为: float 0.23
float 2000
4、 逻辑:true或false,用于条件测试;
5、 数组:一个变量存储多个值;
$it=array("google","apple","microsoft");
var_dump($it);
运行结果: array (size=3)
0 => string 'google' (length=6)
1 => string 'apple' (length=5)
2 => string 'microsoft' (length=9)
6、 对象:对象是存储数据和有关如何处理数据的信息的数据类型。
明确地声明对象:
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型。
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
7、 NULL:表示变量无值,可用于标示变量为空,也可以用于区分空字符串和空数据库。
五、字符串函数
- strlen():返回字符串的长度,以字符计;
- strpos():检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
注意:字符串中首字符的位置是 0 而不是 1。
$str ="Hello IT!";
echo strlen($str);
echo "<br />";
echo strpos($str,"IT");
运行结果: 9
6
六、PHP常量
1.PHP常量的特点
- 一旦被定义就无法更改或撤销定义;
- 以字符或下划线开头(常量名称前面没有 $ 符号);
- 自动全局。
2.设置PHP常量
使用define()函数,包含三个参数:
- 第一个——>常量名称;
- 第二个——>常量的值;
- 第三个——>是否对大小写敏感,默认为false(对大小写敏感)。
define("PHP","Personal Home Page.",true);
echo PHP.'<br />';
echo php;
运行结果: Personal Home Page.
Personal Home Page.
七、PHP运算符
1、算数运算符
算数 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
2、赋值运算符
赋值 | 等同于 | 描述 |
---|---|---|
x =y | x = y | 右侧表达式为左侧运算数设置值。 |
x += y | x = x + y | 加 |
x -= y | x = x - y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x %= y | x = x % y | 模数 |
3、字符串运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
. | 串接 | $txt1 = “Hello” $txt2 = $txt1 . ” world!” | 现在 $txt2 包含 “Hello world!” |
.= | 串接赋值 | $txt1 = “Hello” $txt1 .= ” world!” | 现在 $txt1 包含 “Hello world!” |
4、递增/递减运算符
运算符 | 名称 | 描述 |
---|---|---|
++$x | 前递增 | $x 加一递增,然后返回 $x |
$x++ | 后递增 | 返回 $x,然后 $x 加一递增 |
–$x | 前递减 | $x 减一递减,然后返回 $x |
$x– | 后递减 | 返回 $x,然后 $x 减一递减 |
5、比较运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
== | 等于 | $x == $y | 如果$x 等于 $y,则返回 true。 |
=== | 全等(完全相同) | $x === $y | 如果 $x 等于 $y,且它们类型相同,则返回 true。 |
!= | 不等于 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不等于 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等(完全不同) | $x !== $y | 如果 $x 不等于 $y,且它们类型不相同,则返回 true。 |
> | 大于 | $x > $y | 如果 $x 大于 $y,则返回 true。 |
< | 大于 | $x < $y | 如果 $x 小于 $y,则返回 true。 |
>= | 大于或等于 | $x >= $y | 如果 $x 大于或者等于 $y,则返回 true. |
<= | 小于或等于 | $x <= $y | 如果 $x 小于或者等于 $y,则返回 true。 |
6、逻辑运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果$x 和$y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x | $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
7、数组运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
+ | 联合 | $x + $y | $x 和 $y 的联合(但不覆盖重复的键) |
== | 相等 | $x == $y | 如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== | 全等 | $x === $y | 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等 | $x !== $y | 如果 $x 与 $y 完全不同,则返回 true。 |
PHP的基本语法(三)
八、条件语句
1、if 语句
如果指定条件为真,则执行代码
2、if…else 语句
如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
3、if…elseif….else 语句
选择若干段代码块之一来执行
$num=3;
if($num>3)
echo "$num>1";
elseif($num==3)
echo "$num=3";
else
echo "$num<3";
运行结果:$num=3
4、switch 语句
有选择地执行若干代码块之一
工作原理:
- 对表达式(通常是变量)进行一次计算
- 把表达式的值与结构中 case 的值进行比较
- 如果存在匹配,则执行与 case 关联的代码
- 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
- 如果没有 case 为真,则使用 default 语句
$x=4;
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
default:
echo "No number between 1 and 2";
}
运行结果:No number between 1 and 2
九、循环语句
1、while
只要指定条件为真,则循环代码块
2、do…while
先执行一次代码块,然后只要指定条件为真则重复循环
3、for
循环代码块指定次数
4、foreach
遍历数组中的每个元素并循环代码块
<?PHP
$its = array("Apple","Google","Microsoft","Solidot");
foreach ($its as $it) {
echo "$it <br>";
}
?>
运行结果: Apple
Google
Microsoft
Solidot
十、函数
1、函数的类型
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
- 内建函数:超过一千个内建函数
- 自定义函数:以“function”关键字开头;函数名能够以字母或下划线开头(而非数字),对大小写不敏感,应该能够反映函数所执行的任务。
2、函数的几个要素
- PHP函数参数:参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
- PHP函数默认参数:直接在参数后面赋值,当我们调用不含参数的函数时会自动赋予默认值。
- PHP函数返回值:使用return语句返回值。
<?php
function passwd($account,$password=123456){
return $password;
}
$pLee = passwd("Lee");
echo "$pLee";
?>
运行结果:123456
十一、数组
1、什么是数组?
数组是特殊的变量,它可以同时保存一个以上的值。
数组能够在单一变量名中存储许多值,并且您能够通过引用下标号来访问某个值。
2、三种数组类型
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
3、用array()创建数组
(1)、创建索引数组
$its=array("Google","Apple","Microsoft");
print_r($its);
或
$its[0]="Google";
$its[1]="Apple";
$its[2]="Microsoft";
print_r($its);
运行结果:Array ( [0] => Google [1] => Apple [2] => Microsoft )
(2)、创建关联数组
$age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
print_r($age);
或
$age["Peter"]="20";
$age['Bill']="19";
$age["Ken"]="21";
print_r($age);
运行结果:Array ( [Peter] => 20 [Bill] => 19 [Ken] => 21 )
4、用count()获取数组长度
$its=array("Google","Apple","Microsoft");
$age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
echo count($its)."<br />";
echo count($age);
运行结果: 3
3
5、用for和foreach遍历数组
(1)、用for遍历索引数组
$its=array("Google","Apple","Microsoft");
for($i=0;$i<count($its);$i++){
echo $its[$i]."<br />";
}
运行结果: Google
Apple
Microsoft
(2)、用foreach遍历关联数组
$age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
foreach($age as $value){
echo $value."<>";
}
运行结果: 20
19
21
6、数组排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
如何记住它们?
r—-reduce,减少
a—-value,值(不知道是不是,暂且这样记)
k—-key,键
$age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
foreach($age as $value){
echo $value."<br />";
}
arsort($age);
foreach($age as $value){
echo $value."<br />";
}
运行结果: 20
19
21
21
20
19
一、GET和POST的联系和区别
1、GET和POST的联系
- GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
- GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。
2、GET和POST的区别
- $_GET 是通过 URL 参数传递到当前脚本的变量数组。
- $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
二、GET和POST的使用
1、何时使用?
- GET使用情景:对任何人可见的非敏感数据,限制在2000个字符,显示在URL中;
- POST使用情景:对其他人不可见,字符数量无限制,嵌入http请求主体,支持高阶功能。
2、怎么使用?
- 使用GET
<!DOCTYPE html>
<html>
<body>
<a href="<?php echo $_SERVER['PHP_SELF']?>?keyword=Google&position=China">搜索</a>
</body>
</html>
<?php
echo "You search ".$_GET['keyword']." in ".$_GET['position'];
?>
- 使用POST
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
Name:<input type="text" name="name">
<input type="submit">
</form>
</body>
</html>
<?php
$name= $_POST['name'];
echo $name;
?>
一、date()函数
string date ( string $format [, int $timestamp ] )
作用:将时间戳格式化为易读的时间和日期。
参数 | 描述 |
---|---|
format | 必需。规定时间戳的格式。 |
timestamp | 可选。规定时间戳。默认是当前时间和日期。 |
1、获取日期
(1)、年
format格式 | 说明 | 例子 |
---|---|---|
L | 是否为闰年 | 如果是闰年为 1,否则为 0 |
o | ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位数字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位数字表示的年份 | 例如:99 或 03 |
(2)、月
format格式 | 说明 | 例子 |
---|---|---|
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 数字表示的月份,有前导零 | 01 到 12 |
M | 三个字母缩写表示的月份 | Jan 到 Dec |
n | 数字表示的月份,没有前导零 | 1 到 12 |
t | 给定月份所应有的天数 | 28 到 31 |
(3)、日
format格式 | 说明 | 例子 |
---|---|---|
d | 月份中的第几天,有前导零的 2 位数字 | 01 到 31 |
D | 星期中的第几天,文本表示,3 个字母 | Mon 到 Sun |
j | 月份中的第几天,没有前导零 | 1 到 31 |
l(“L”的小写字母) | 星期几,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天数后面的英文后缀,2 个字符 | st,nd,rd 或者 th。可以和 j 一起用 |
w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第几天 | 0 到 365 |
(4)、星期
format格式 | 说明 | 例子 |
---|---|---|
W | ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) | 例如:42(当年的第 42 周) |
2、获取时间
(1)、时间
format格式 | 说明 | 例子 |
---|---|---|
a | 小写的上午和下午值 | am 或 pm |
A | 大写的上午和下午值 | AM 或 PM |
B | Swatch Internet 标准时 | 000 到 999 |
g | 小时,12 小时格式,没有前导零 | 1 到 12 |
G | 小时,24 小时格式,没有前导零 | 0 到 23 |
h | 小时,12 小时格式,有前导零 | 01 到 12 |
H | 小时,24 小时格式,有前导零 | 00 到 23 |
i | 有前导零的分钟数 | 00 到 59> |
s | 秒数,有前导零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
(2)、时区
format格式 | 说明 | 例子 |
---|---|---|
e | 时区标识(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否为夏令时 | 如果是夏令时为 1,否则为 0 |
O | 与格林威治时间相差的小时数 | 例如:+0200 |
P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本机所在的时区 | 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。 |
Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 | -43200 到 43200 |
二、mktime()函数
mktime(hour,minute,second,month,day,year)
作用:根据给出的参数返回Unix时间戳。
时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。
三、strtotime()函数
int strtotime ( string $time [, int $now = time() ] )
作用:将任何英文文本的日期时间描述解析为 Unix 时间戳
time:日期/时间字符串。正确格式的说明详见 日期与时间格式。
now:用来计算返回值的时间戳。
备注:修改时区获取本地时间
- 修改PHP.ini文件中date.timezone字段
去掉前面的分号,在后面加上PRC(北京时间),然后重启appache - 在代码中初始化时间 date_default_timezone_set (XXX)
- 另外:关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)。还有新加坡:Asia/Singapore。
其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC
四、奉上我学完这个之后做的一个简单的日历:
<html>
<head>
<!--<meta http-equiv="refresh" content="3">-->
</head>
<body>
<table cellpadding="10">
<tr>
<td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td>
</tr>
<?php
#显示一张日历
$SATNUM=0;
$MONTH=date("m");
echo "<tr>";
for($i=0;$i<date("w",strtotime("2015/$MONTH/01"));$i++){
echo "<td></td>";
}
for($j=0,$i=date("w",strtotime("2015/$MONTH/01"));$i<=6;$i++,$j++){
$tmp=01+$j;
$GLOBALS['SATNUM']=$tmp;
echo "<td>$tmp</td>";
}
echo "</tr>";
for($j=0;$j<4;$j++){
echo "<tr>";
for($i=0;$i<7;$i++){
$tmp=++$GLOBALS['SATNUM'];
if($tmp==date("d"))
echo "<td bgcolor=blue>$tmp</td>";
elseif(!($tmp>date("t")))
echo "<td>$tmp</td>";
}
echo "</tr>";
}
?>
<?php
#确定星期几
$week="";
switch(date("w")){
case 0:$week="星期天";break;
case 1:$week="星期一";break;
case 2:$week="星期二";break;
case 3:$week="星期三";break;
case 4:$week="星期四";break;
case 5:$week="星期五";break;
case 6:$week="星期六";break;
}
#动态显示当前时间
echo "现在时间是:".date("Y年m月d日$week h时i分s秒");
echo "<br />";
?>
</body>
</html>
一、有什么用?
服务器端包含 (Server Side Include,SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。包含文件重用了文件,省去了许多工作。
二、怎么用?
include ‘filename’;
或
require ‘filename’;
1.php
<?php
echo "Hello ";
include '2.php';
?>
2.php
<?php
echo "World.";
?>
在浏览器访问1.php会得到(注意此时1.php和2.php是放在同一个文件夹里的):Hello World.
三、include跟require有什么区别?
在错误处理方面:
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
include 只生成警告(E_WARNING),并且脚本会继续
请在此时使用:
请在此时使用 require:当文件被应用程序请求时。
请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。
PHP中对文件的操作:创建、读取、上传、编辑。 PHP提过了多种相关的函数。
1、readfile()
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
参数:
- filename:文件名;
- use_include_path:是否也在include_path中搜索文件;
- context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
返回值:返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。
示例:
1.php和new.txt在同一个文件夹
1.php内容:
<?php
echo @readfile("new.txt");
?>
new.txt内容:
It's a new file.
运行1.php结果:
It's a new file.16
2、fopen()
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
参数:
- filename:如果 filename 是 “scheme://…” 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。;
- mode:指定了所要求到该流的访问类型;
- use_include_path:是否也在include_path中搜索文件;
- context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
返回值:
成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。
注:文件访问类型表
mode | 说明 |
---|---|
“r” | 只读方式打开,将文件指针指向文件头。 |
“r+” | 读写方式打开,将文件指针指向文件头。 |
“w” | 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
“w+” | 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
“a” | 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
“a+” | 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
“x” | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL |
“x+” | 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL |
3、fread()
string fread ( resource $handle , int $length )
从文件指针 handle 读取最多 length 个字节
参数:
- head:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
- length:最多读取 length 个字节。
返回值:
返回所读取的字符串, 或者在失败时返回 FALSE。
4、fclose()
bool fclose ( resource $handle )
将指定文件关闭(好习惯,减少服务器资源占用)。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。
5、fgets()
string fgets ( resource $handle [, int $length ] )
从文件中读取一行数据。从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
6、feof()
bool feof ( resource $handle )
测试文件指针是否到了文件结束的位置。
7、fgetc()
string fgetc ( resource $handle )
从文件中读取单个字符。
8、fwrite()
int fwrite ( resource $handle , string $string [, int $length ] )
参数:
- handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
- string:要写入的字符串;
- length:如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
返回值:
fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。
9、一个超级简单的评论墙
<html>
<head>
<title>评论墙</title>
</head>
<body>
<!--评论表单-->
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">
昵称:<input type="text" name="name"></input>
<br />
评论:<textarea rows='5' cols='19' name="comment"></textarea>
<br />
<input type="submit" name="submit" value="提交">
</form>
<!--保存评论到文件-->
<?php
/**
文件的读写测试
*/
if($_SERVER['REQUEST_METHOD']=='POST'){
#打开文件
$fname="D:\comment.txt";
$file=fopen($fname,"a+");
#写入数据
$name=@$_POST['name'];
$comment=@$_POST['comment'];
$str=$name."`".$comment."
";
fwrite($file,$str);
#关闭文件
fclose($file);
}
?>
<!--显示评论内容-->
<table cellpadding="4" >
<tr>
<td><b>昵称</b></td>
<td><b>评论</b></td>
</tr>
<?php
$fname="D:\comment.txt";
$file=fopen($fname,"r");
while(!feof($file)){
$line=fgets($file);
$arr=explode("`",$line);
echo @"<tr><td>$arr[0]</td><td>$arr[1]</td></tr>";
}
fclose($file);
?>
</table>
</body>
</html>
一、什么是Cookies?
Cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。如果你的浏览器不支持Cookies,那就只好用表单传递数据了。
点击查看维基百科关于Cookies的解释。
二、创建Cookies
setcookie(name, value, expire, path, domain);
用于设置Cookie,必须位于 < html > 标签之前。
参数:
- name:设置Cookies的名字;
- value:Cookies的值,存储在客户机上,不要存放敏感信息,假定Cookies名为“cookiesname”则值为$_COOKIES[‘cookiesname’]。
- expire:Cookies的到期时间,这是一个时间戳(以秒为单位)。默认为会话结束(浏览器关闭)就到期。一般使用time()函数加上秒数,表示多少秒后到期。
- path:设置Cookies在服务器上的可用目录,默认为当前目录。
- domain:设置Cookies可用的域名。
返回值:
如果在调用这个函数之前有输出,将会返回false;如果函数正常执行将会返回true。这并不能表示用户是否接受Cookies。
注:
在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码。(为防止 URL 编码,请使用 setrawcookie() 取而代之。)
三、取回Cookies
$_COOKIES[‘cookiesname’]用于取回Cookies的值。在这之前最好用isset()函数判断是否设置了Cookies
四、删除Cookies
删除Cookies只需要用setcookie()函数,将参数中的expire设置为过去的时间即可。
五、Cookies的一个小测试
1. 新建1.php
<?php
setcookie("ip","192.168.1.1",time()+86400);
echo '已设置Cookies:ip';
?>
2. 新建2.php
<?php
if(isset($_COOKIE["ip"])){
echo '已取得Cookies:ip---->'.$_COOKIE['ip']."<br />";
setcookie("ip","",time()-300);
echo "已删除Cookies:ip.";
}
?>
3、打开浏览器输入:localhost/1.php
输出结果: 已设置Cookies:ip
4、关闭再打开浏览器,输入:localhost/2.php
输出结果: 已取得Cookies:ip---->192.168.1.1
已删除Cookies:ip.
5、在步骤4的基础上刷新页面
没有输出。