明净

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

<?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:表示变量无值,可用于标示变量为空,也可以用于区分空字符串和空数据库。

五、字符串函数

 

 

  1. strlen():返回字符串的长度,以字符计;
  2. strpos():检索字符串内指定的字符或文本。 
    如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。 

 

注意:字符串中首字符的位置是 0 而不是 1。
$str ="Hello IT!";
echo strlen($str);
echo "<br />";
echo strpos($str,"IT");

运行结果: 

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

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:用来计算返回值的时间戳。

备注:修改时区获取本地时间

  1. 修改PHP.ini文件中date.timezone字段 
    去掉前面的分号,在后面加上PRC(北京时间),然后重启appache
  2. 在代码中初始化时间 date_default_timezone_set (XXX)
  3. 另外:关于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 ]] )

参数:

  1. filename:文件名;
  2. use_include_path:是否也在include_path中搜索文件;
  3. 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 ]] )

参数:

  1. filename:如果 filename 是 “scheme://…” 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。;
  2. mode:指定了所要求到该流的访问类型;
  3. use_include_path:是否也在include_path中搜索文件;
  4. 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 个字节

参数:

  1. head:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
  2. 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 ] )

参数:

  1. handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
  2. string:要写入的字符串;
  3. 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."\r\n";
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的基础上刷新页面

没有输出。

posted on 2018-01-05 16:00  明净  阅读(288)  评论(0编辑  收藏  举报