php教程 cookies 删除,赋值方法
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 php,您能够创建并取回 cookie 的值
语法
setcookie(name, value, expire, path, domain);
**
* 设置cookie
* n 名称
* c 值
* e 有效期 0 默认 一个月 1 关闭立即失效
*/
function w_cookie($n, $c, $e = 0,$isdes=1)
{
if($isdes==1){$c=endes($c,deskey);}
$exp = time() + 3600 * 24 * 30;
if($e == 0)
{
setcookie($n, $c, $exp,"/");
}
else
{
setcookie($n, $c,0,"/");
}
}
//关闭cookie方法
w_cookie('bb', 'www.111cn.net', $e = 0,$isdes=1);
更多详细内容请查看:http://www.111cn.net/phper/php/34040.htm
更详细的方法
<?php
function set_cronology($name,$value,$duration=7){
$duration=time()+(3600*24*$duration);
$max_stored_values=5;
if(isset($_cookie[$name])){
foreach($_cookie[$name] as $prop_crono=>$val_crono){
if($val_crono==$value)
return;
}
if($prop_crono<$max_stored_values)
setcookie($name.'['.($prop_crono+1).']',$value,$duration);
else{
array_shift($_cookie[$name]);
setcookie("$name[$max_stored_values]",$value,$duration);
}
}else
setcookie($name.'[0]',$value,$duration);
return;
}
?>
注释:setcookie() 函数必须位于 <html> 标签之前。在发送 cookie 时,cookie 的值会自动进行 url 编码,在取回时进行自动解码(为防止 url 编码,请使用 setrawcookie() 取而代之)。
php教程中$_get要获取表单的数据那必须把METHOD=GET才行,否则就无法正常获取值哦,
$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。
$_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。
看个获取表单数据的实例
<INPUT TYPE="image" NAME="submit_one" SRC="b.gif">
<INPUT TYPE="image" NAME="submit_two" SRC="b2.gif">
//Properly determining which submission button was clicked in PHP:<?php
if(isset($_GET['submit_one_x'])) {} elseif(isset($_GET['submit_two_x'])) {
} else {}
?>
实例二
<?
<FORM ACTION="index.php" METHOD=GET>
<INPUT TYPE="hidden" NAME="time" VALUE="<?php echo time(); ?>">
Enter your message (5 minute time limit):<INPUT TYPE="text" NAME="mytext" VALUE="">
<INPUT TYPE="submit" Value="Send Data">
</FORM>if($_GET['time']+300 >= time()) {
echo "You took too long!<BR>";
exit;
}
?>
操作select值
<SELECT NAME="myselect[]" MULTIPLE SIZE=3>
<OPTION VALUE="value1">A</OPTION>
<OPTION VALUE="value2">B</OPTION>
<OPTION VALUE="value3">C</OPTION>
<OPTION VALUE="value4">D</OPTION>
</SELECT>
//The PHP code to access which value(s) were selected:<?php
foreach($_GET['myselect'] as $val) {
echo "You selected: $val<BR>";
}
echo "You selected ".count($_GET['myselect'])." Values.";
?>
获取表单提交的数据再输出,这也是个完整的实例
<html>
<head>
<title>A Simple HTML Form</title>
</head>
<body>
<div>
<form action="index.php" method="get">
<p><input type="text" name="user" /></p>
<p><textarea name="address" rows="5" cols="40">
</textarea></p>
<p><input type="submit" value="hit it!" /></p>
</form>
</div>
</body>
</html>
// index.php
<html>
<body>
<div>
<?php
print "Welcome <b>" . $_GET ['user'] . "</b><br/>nn";
print "Your address is: <br/><b>" . $_GET ['address'] . "</b>";
?>
</div>
</body>
</html>
注释:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
注释:HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的
下面方法很简单,我们只要把$tmppath里面所有的以http://开的网站全部去了,
$picpath =preg_replace("/[a-za-z]+://[^ |/|s]*/",'',$tmppath);//去掉网址部分
这个正则表达式是获取字符串中所有的以src src不区分大小的获取所有图片的地址出来,并且保存在$tmpdata[2]中。
preg_match_all("/src=["|'|s|s]([^|/|>]*){0,}(([^>]*).(gif|jpg|png))/isu",$body,$tmpdata);
$picspath =array_unique($tmpdata[2]);//body中所有图片的地址
php教程 ini_get错误设置方法
利用ini_set可以快速的修改php.ini配置设置哦,无需打开php.ini就可以了,特别是虚拟主机时你没有修改php.ini的权限时就会发现这个函数的作用了,下面看几个实例吧。
*/
//ini_set具有更改php.ini设置的功能。此函数接收两个参数:需要调整的配置变量名,以及变量的新值。
更多详细内容请查看:http://www.111cn.net/phper/php-function/34292.htm
<?php
error_reporting(e_all); //1.指定错误报告,错误类型为全部
//ini_set("error_reporting",e_all); //临时改变配置文件的值
//ini_get("upload_max_filesize"); //获取配置文件的值
ini_set("display_errors","off"); //2.关闭配置文件中的显示错误
ini_set("log_errors","on"); //3.开启错误日志功能
ini_set("error_log","c:/error.log"); //4.指定错误文件(可写)
error_log("this is a error message!!!!"); //输出错误信息
?>
错误处理
1.语法错误
2.运行时的错误
3.逻辑错误
错误报告:
错误:e_error
警告:e_warning
注意:e_notice
建议:
开发阶段:开发是输出所有的错误报告,有利于调试程序
运行阶段:不要让程序输出任何一种错误报告
将多个数组合并起来
1.合并数组
array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:
view sourceprint?1 array array_merge (array array1 array2…,arrayn)
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
实例如下:
view sourceprint?1 $face = array("j","q","k","a");
2 $numbered = array("2","3","4","5","6","7","8","9");
3 $cards = array_merge($face, $numbered);
4 shuffle($cards);
5 print_r($cards);
这将返回如下所示的结果,运行代码:
view sourceprint?array ( [0] => a [1] => 4 [2] => 9 [3] => 3 [4] => k [5] => 7 [6] => 5 [7] => q [8] => 6 [9] => 8 [10] => 2 [11] => j )
2.递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为:
view sourceprint?array array_merge_recursive( array key,array values )
示例如下:
view sourceprint?1 $class1 = array("john" => 100, "james" => 85);
2 $class2 = array("micky" => 78, "john" => 45);
3 $classscores = array_merge_recursive($class1, $class2);
4 print_r($classscores);
这将返回如下结果:
view sourceprint?array ( [john] => array ( [0] => 100 [1] => 45 ) [james] => 85 [micky] => 78 )
3.连接两个数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为:
view sourceprint?array array_merge(array array1,array array2[…,array arrayn])
注意,两个输入数组必须大小相同,不能为空。示例如下:
view sourceprint?1 $abbreviations = array("al","ak","az","ar");
2 $states = array("alabama","alaska","arizona","arkansas");
3 $statemap = array_combine($abbreviations,$states);
4 print_r($statemap);
这会返回:
view sourceprint?1 array ( [al] => alabama [ak] => alaska [az] => arizona [ar] => arkansas )