日期、表单接收、session、cookie(php教程三)
session
代码如下 | 复制代码 |
<?php session_start();//session在浏览器关闭后马上失效,需要这样声明才能读写session $_session['id']='服务器';//这就是声明和初始化了,和数组用法一样 $_session['name']='会话'; print_r($_session);//会话注册成功输出一个数组 echo "<br>"; $_session['id']='还是服务器';//改变一个会话,再输出看看 unset($_session['name']);//注销一个会话,再输出看看 print_r($_session); echo "<br>"; ?> |
会话支持允许用户注册任意数目的变量并保留给各个请求使用。当来客访问网站时,php 会自动(如果 session.auto_start 被设为 1)或在用户请求时(由 session_start() 明确调用或 session_register() 暗中调用)检查请求中是否发送了特定的会话 id。如果是,则之前保存的环境就被重建
page1.php
代码如下 | 复制代码 |
session_start(); echo 'welcome to page #1'; /* 创建session变量并给session变量赋值 */ $_session['favcolor'] = 'green'; $_session['animal'] = 'cat'; $_session['time'] = time(); |
page2.php
代码如下 | 复制代码 |
session_start(); print $_session['animal']; // 打印出单个session var_dump($_session); // 打印出page1.php传过来的session值 |
get,
$_get 变量
$_get 变量是一个数组,内容是由 http get 方法发送的变量名称和值。
$_get 变量用于收集来自 method="get" 的表单中的值。从带有 get 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。
例子
代码如下 | 复制代码 |
<form action="welcome.php" method="get"> name: <input type="text" name="name" /> age: <input type="text" name="age" /> <input type="submit" /> |
</form>当用户点击提交按钮时,发送的 url 会类似这样:
http://www.111cn.net/welcome.php?name=peter&age=37"welcome.php" 文件现在可以通过 $_get 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_get 数组中的 id 键):
代码如下 | 复制代码 |
welcome <?php echo $_get["name"]; ?>.<br /> you are <?php echo $_get["age"]; ?> years old! |
看个简单详细的实例
代码如下 | 复制代码 |
<?php echo $str=urlencode("第一页");//url变量编码,跟google一样 echo "<br>".urldecode($str);//url变量解码,我看到了 echo "<br><a href=index.php?page=".$str.">第一页</a>"; echo "<br>"; if($_get)echo "变量已接收:".$_get['page'];//$_get对应$_post,php是自动识别url编码并自动解码好的。 echo "<br>"; ?> |
cookie
php cookie 用法
$time = time() + 300; //5分钟过期
$code = md5($string . $time . $salt);
setcookie('check_time', $time);
setcookie('code', $code);
//验证部分
$time = time();
if($check_time < $time)//如果服务器时间比验证时间大,算过期
//expire过期
if(md5($string . $check_time . $salt) !== $code)
//错误
其实这种方法相对好一点,因为过期不能提交了,但是过期之前还是可以无限提交的
看一cookie实例
代码如下 | 复制代码 |
<?php setcookie("id","客户端");//这就是声明和初始化cookie的函数。关闭浏览器即失效 setcookie("name","会话",time()+3600);//自此1小时后失效 print_r($_cookie);//会话注册成功输出一个数组,也可以用$http_cookie_vars访问 echo "<br>"; setcookie("id","还是客户端");//改变一个会话,再输出看看 unset($_cookie['name']);//注销一个会话,再输出看看,等价于setcookie("name","",time()-1);这是很多书上说的,其实用unset也能注销 print_r($_cookie); echo "<br>"; ?> |
日期
代码如下 | 复制代码 |
<?php echo time();//返回一串以秒计算的时间数字戳 echo "<br>"; echo date("y-m-d h:i:s",time()+8*3600);//格式化时间,+8*3600变为中国时区时间 echo "<br>"; $str="2010-08-24 10:26:10"; echo date("y-m-d h:i:s",strtotime($str));//strtotime将字符串转为时间戳 echo "<br>"; ?> |
<?php教程
class opmysql教程{
private $host = 'localhost'; //服务器地址
private $name = 'root'; //登录账号
private $pwd = ''; //登录密码
private $dbase = 'a0606123620'; //数据库教程名称
private $conn = ''; //数据库链接资源
private $result = ''; //结果集
private $msg = ''; //返回结果
private $fields; //返回字段
private $fieldsnum = 0; //返回字段数
private $rowsnum = 0; //返回结果数
private $rowsrst = ''; //返回单条记录的字段数组
private $filesarray = array(); //返回字段数组
private $rowsarray = array(); //返回结果数组
private $idusername=array();
private $idsubtitle=array();
//初始化类
function __construct($host='',$name='',$pwd='',$dbase=''){
if($host != '')
$this->host = $host;
if($name != '')
$this->name = $name;
if($pwd != '')
$this->pwd = $pwd;
if($dbase != '')
$this->dbase = $dbase;
$this->init_conn();
}
//链接数据库
function init_conn(){
$this->conn=@mysql_connect($this->host,$this->name,$this->pwd);
@mysql_select_db($this->dbase,$this->conn);
mysql_query("set names utf8");
}
//查询结果
function mysql_query_rst($sql){
if($this->conn == ''){
$this->init_conn();
}
$this->result = @mysql_query($sql,$this->conn);
}
//取得查询结果字段数目
function getfieldsnum($sql){
$this->mysql_query_rst($sql);
$this->fieldsnum = @mysql_num_fields($this->result);
}
//取得查询结果行数目
function getrowsnum($sql){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
return @mysql_num_rows($this->result);
}else{
return '';
}
}
//取得记录数组有索引(单条记录)
function getrowsrst($sql){
$this->mysql_query_rst($sql);
if(mysql_error() == 0){
$this->rowsrst = mysql_fetch_array($this->result,mysql_assoc);
return $this->rowsrst;
}else{
return '';
}
}
//取得记录数组有索引(多条记录)全部
function getrowsarray($sql){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
while($row = mysql_fetch_array($this->result,mysql_assoc)) {
$this->rowsarray[] = $row;
}
return $this->rowsarray;
}else{
return '';
}
}
//更新、删除、添加记录数,返回影响到的行数
function uidrst($sql){
if($this->conn == ''){
$this->init_conn();
}
@mysql_query($sql);
$this->rowsnum = @mysql_affected_rows();
if(mysql_errno() == 0){
return $this->rowsnum;
}else{
return '';
}
}
//获取对应的字段值,一条数字索引,mysql_array_rows才是带字段索引
function getfields($sql,$fields){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
if(mysql_num_rows($this->result) > 0){
$tmpfld = @mysql_fetch_row($this->result);
$this->fields = $tmpfld[$fields];
}
return $this->fields;
}else{
return '';
}
}
//错误信息
function msg_error(){
if(mysql_errno() != 0) {
$this->msg = mysql_error();
}
return $this->msg;
}
//释放结果集
function close_rst(){
mysql_free_result($this->result);
$this->msg = '';
$this->fieldsnum = 0;
$this->rowsnum = 0;
$this->filesarray = '';
$this->rowsarray = '';
$this->idsubtitle='';
$this->idusername='';
}
//关闭数据库
function close_conn(){
$this->close_rst();
mysql_close($this->conn);
$this->conn = '';
}
}
?>
实例方法
代码如下 | 复制代码 |
<?php $conne = new opmysql(); $conne-> getrowsarray($sql); $conne-> close_conn(); $password=”123456一二三四五六”; echo md5($password.”www.111cn.net”);//输出为32位的密文,是没有解密函数的,可以实现简单的加密功能。 ?> |
mysql数据库类型主要是: char(固定空间字符串,多大就是多少个中文字符)、varchar(可变空间字符串,多大就是初始化多少个中文字符)、int(整数多大就是多少位)、float(浮点数)、timestamp(日期,可选建立时自动创建,输出时就已经是格式化过的date)、text(文本)、bool(布尔型)
写sql语句时sum()可以统计值;order by 'id' desc limit 10,10等要活用。
在phpmyadmin学一下sql语句增删改查就行了。
php教程 array 简介
array 函数允许您对数组进行操作。
php 支持单维和多维的数组。同时提供了用数据库教程查询结果来构造数组的函数。
安装
array 函数是 php 核心的组成部分。无需安装即可使用这些函数。
php array 函数
php:指示支持该函数的最早的 php 版本。
函数 描述 php
array() 创建数组。 3
array_change_key_case() 返回其键均为大写或小写的数组。 4
array_chunk() 把一个数组分割为新的数组块。 4
array_combine() 通过合并两个数组来创建一个新数组。 5
array_count_values() 用于统计数组中所有值出现的次数。 4
array_diff() 返回两个数组的差集数组。 4
array_diff_assoc() 比较键名和键值,并返回两个数组的差集数组。 4
array_diff_key() 比较键名,并返回两个数组的差集数组。 5
array_diff_uassoc() 通过用户提供的回调函数做索引检查来计算数组的差集。 5
array_diff_ukey() 用回调函数对键名比较计算数组的差集。 5
array_fill() 用给定的值填充数组。 4
array_filter() 用回调函数过滤数组中的元素。 4
array_flip() 交换数组中的键和值。 4
array_intersect() 计算数组的交集。 4
array_intersect_assoc() 比较键名和键值,并返回两个数组的交集数组。 4
array_intersect_key() 使用键名比较计算数组的交集。 5
array_intersect_uassoc() 带索引检查计算数组的交集,用回调函数比较索引。 5
array_intersect_ukey() 用回调函数比较键名来计算数组的交集。 5
array_key_exists() 检查给定的键名或索引是否存在于数组中。 4
array_keys() 返回数组中所有的键名。 4
array_map() 将回调函数作用到给定数组的单元上。 4
array_merge() 把一个或多个数组合并为一个数组。 4
array_merge_recursive() 递归地合并一个或多个数组。 4
array_multisort() 对多个数组或多维数组进行排序。 4
array_pad() 用值将数组填补到指定长度。 4
array_pop() 将数组最后一个单元弹出(出栈)。 4
array_product() 计算数组中所有值的乘积。 5
array_push() 将一个或多个单元(元素)压入数组的末尾(入栈)。 4
array_rand() 从数组中随机选出一个或多个元素,并返回。 4
array_reduce() 用回调函数迭代地将数组简化为单一的值。 4
array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。 4
array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。 4
array_shift() 删除数组中的第一个元素,并返回被删除元素的值。 4
array_slice() 在数组中根据条件取出一段值,并返回。 4
array_splice() 把数组中的一部分去掉并用其它值取代。 4
array_sum() 计算数组中所有值的和。 4
array_udiff() 用回调函数比较数据来计算数组的差集。 5
array_udiff_assoc() 带索引检查计算数组的差集,用回调函数比较数据。 5
array_udiff_uassoc() 带索引检查计算数组的差集,用回调函数比较数据和索引。 5
array_uintersect() 计算数组的交集,用回调函数比较数据。 5
array_uintersect_assoc() 带索引检查计算数组的交集,用回调函数比较数据。 5
array_uintersect_uassoc() 带索引检查计算数组的交集,用回调函数比较数据和索引。 5
array_unique() 删除数组中重复的值。 4
array_unshift() 在数组开头插入一个或多个元素。 4
array_values() 返回数组中所有的值。 4
array_walk() 对数组中的每个成员应用用户函数。 3
array_walk_recursive() 对数组中的每个成员递归地应用用户函数。 5
arsort() 对数组进行逆向排序并保持索引关系。 3
asort() 对数组进行排序并保持索引关系。 3
compact() 建立一个数组,包括变量名和它们的值。 4
count() 计算数组中的元素数目或对象中的属性个数。 3
current() 返回数组中的当前元素。 3
each() 返回数组中当前的键/值对并将数组指针向前移动一步。 3
end() 将数组的内部指针指向最后一个元素。 3
extract() 从数组中将变量导入到当前的符号表。 3
in_array() 检查数组中是否存在指定的值。 4
key() 从关联数组中取得键名。 3
krsort() 对数组按照键名逆向排序。 3
ksort() 对数组按照键名排序。 3
list() 把数组中的值赋给一些变量。 3
natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。 4
natsort() 用“自然排序”算法对数组排序。 4
next() 将数组中的内部指针向前移动一位。 3
pos() current() 的别名。 3
prev() 将数组的内部指针倒回一位。 3
range() 建立一个包含指定范围的元素的数组。 3
reset() 将数组的内部指针指向第一个元素。 3
rsort() 对数组逆向排序。 3
shuffle() 把数组中的元素按随机顺序重新排列。 3
sizeof() count() 的别名。 3
sort() 对数组排序。 3
uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。 3
uksort() 使用用户自定义的比较函数对数组中的键名进行排序。 3
usort() 使用用户自定义的比较函数对数组中的值进行排序。 3
下面来看看关于数组操作
<?php
$arr=array('a'=>"你",'b'=>"我","他");
$arr[]="其他";
echo $arr['b']."<br>";
$arr['c']="";//给个空值,但仍然占着位置的
echo count($arr)."<br>";//数组有多少个值。
unset($arr['b']);//这函数可以注销字符串、整个数组等值类型和引用类型。
print_r($arr);//这函数打印数值、引用类型的整个内部结构。
echo "<br>";
foreach($arr as $key=>$value)
echo $key.":".$value."<br>";//循环输出整个数组的值。
?>
数组字符转换
<?php
$arr=array('a'=>"你",'b'=>"我","他");
echo $arr=implode('-',$arr);//数组转字符串,连接符-
echo "<br>";
print_r(explode('-',$arr,2));//字符串转数组。如果最后一个参数不用,表示全部'-'都分割成数组
?>
php数据排序
<?php
$arr=array('b'=>"你",'a'=>"我","他");
ksort($arr);//数组按键值的拼音(utf-8编码)排序,键值不会丢失。注意此排序不返回新数组而是直接把原来数组当引用传递。
print_r($arr);
echo "<br>";
asort($arr);//数组按值的拼音(utf-8编码)排序,键值不会丢失。如果不要键值,可以用函数sort();如果反序也有函数rsort()。注意此排序不返回新数组而是直接把原来数组当引用传递。
print_r($arr);
echo "<br>";
$arr=array(10000,100,1000);
natsort($arr);//按数字自然排序值,而natcasesort()不区分大小写
print_r($arr);
echo "<br>";
print_r(array_reverse($arr));//数组反序
echo "<br>";
?>
比如语句:
代码如下 | 复制代码 |
$fa=3.14; |
字符串和数组是引用类型,也就是说他们作为地址放在栈里,当重新赋值时,栈里的地址改变方向,原来的指向变没或给回收了,英文:string、array。
比如:$str=”字符串”;$arr=array(“a”=>”数”,”b”=>”组”);// array()是一个数组赋值函数,这样的函数php有一千多个,一般常用的不到200个,我觉得。
字符串操作:
实例2:字符串合并、相加
复制代码 代码如下:
代码如下 | 复制代码 |
<?php $str = 1; echo $str .= ""; //数字转化为字符串再合并,结果:"1"。 echo "<br>"; echo $str += "1元"; //字符串转化为数字再相加,如"1xxx"转化为数字1,结果: 2。 echo "<br>"; ?> |
实例3:字符串改变大小写
复制代码 代码如下:
代码如下 | 复制代码 |
<?php $str="12345abc"; echo strtolower($str);//变小写,结果:"12345abc"。 echo "<br>"; echo strtoupper($str);//变小写,结果:"12345abc"。 echo "<br>"; ?> |
实例4:字符串长度、截取子字符串(中英文)
复制代码 代码如下:
代码如下 | 复制代码 |
<?php $str = "字符串2"; echo mb_strlen($str, "utf-8"); //返回字符串长度的函数,第二个参数是编码,由于页面用utf-8编码,所以为这样。如果省去,返回内存占用的字节数(ascii),即10。结果4 echo "<br>"; echo mb_substr($str, 1, 2, "utf-8"); //返回字符截取,1为从”符”地址开始截取,2为截取2个"utf-8"编码的字符,结果:“符串”。 echo "<br>"; /** * 知识点:现在开始接触函数了,每个函数都有()作为堆栈调用,()里面放0个或多个参数,可以自定义可以有默认值。而关键字比如echo是没有()的。 * 很多书用gb2312编码,取长度和子串时很麻烦。下面给大家参考一下不用上面的mb中文字符串扩展库实现原理: */ function my_mb_strlen($str, $code = "utf-8") // 定义一个新函数,$str是必须传入的参数。 {$num= 0; if ($code == "utf-8") { $str = iconv("utf-8", "gb2312", $str); //转化为gb2312编码,ord函数返回对应的ascii值判断每个字节该中文字符是否结束。 for($i = 0;$i < strlen($str);$i++) // 在此strlen($str)返回内存占用的字节数相当于mb_strlen($str) { if (ord($str[$i]) > 0xa0)$i++; //$str[$i]对应内存的i字节。如果直接用utf-8判断会复杂些,因为编码的多样性utf-8是网页常用编码,utf-16(unicode)是windows编码。 $num++; } } else { $num = "编码未实现"; } //有兴趣的自己查资料吧 return $num; } echo my_mb_strlen($str) . ";" . my_mb_strlen($str, "gb2312") . "<br>"; //该页编码用utf-8,你却说传入的字符串3是gb2312,就算函数实现了也无法正确的。 ?> |
实例5:子字符串查找、替换
复制代码 代码如下:
代码如下 | 复制代码 |
<?php $str = "字符串4"; echo mb_strpos($str, '串4', 0, "utf-8"); //查找从0开始找到的第一个子字符串位置,结果:2。如果查找不到,返回空(="");如果最后两个参数不要,返回6。 echo "<br>"; echo mb_strstr($str, '串', 0, "utf-8"); //截取从0开始找到的第一个子字符串至结尾,结果:"串4"。如果查找不到,返回空(="");如果最后两个参数不要,返回相同=strstr($str,'串')。 echo "<br>"; echo str_replace("4", "不是4", $str) ; //字符串替换,结果: "字符串不是4"。 echo "<br>"; ?> |
实例6:子字符串去空、html转义
复制代码 代码如下:
代码如下 | 复制代码 |
<?php $str=" 字符串5 "; echo $str=trim($str);//去除两边空格,结果:"字符串5"。 echo "<br>"; echo "color="red"";//手工转义里面的'、"、,使之存储到内存,结果"color="red"" echo "<br>"; $str="<br>123"; echo htmlentities($str) ; //字符串转义<>&'"避免和html标识冲突,使之能在html浏览器端显示出来,结果:"<br>123"。 echo "<br>"; ?> |
在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str)
实例一
代码如下 | 复制代码 |
str_replace("iwind", "kiki", "i love iwind, iwind said"); 将输出 "i love kiki, kiki said" |
结果
即将 原字符串中的所有"iwind"都替换成了"kiki".str_replace是大小写敏感的,所以对你不能设想用 str_replace("iwind", "kiki",...)替换原字符串中的"iwind". str_replace还可以实现多对一
定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
语法
str_replace(find,replace,string,count)参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
下面用一款
//-- 程序名称:strreplace()
//-- 程序用途:替换变量中的非法字符
//-- 传入参数:变量值
//********************************************************
代码如下 | 复制代码 |
function strreplace($str){ $str = str_replace('>',">",$str); return trim($str); |
相关文章
- PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25- 本文实例讲述了JS使用cookie实现DIV提示框只显示一次的方法。分享给大家供大家参考,具体如下:这里运用JavaScript的cookie技术,控制网页上的提示DIV只显示一次,也就是当用户是第一次打开网页的时候才显示,第二次自动隐藏起...2015-11-08
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 本文实例讲述了php计算两个日期相差天数的方法。...2015-03-15
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- moment是一款多语言支持的日期处理类库, 在vue中如何使用呢?这篇文章主要给大家介绍了关于vue之moment使用的相关资料,需要的朋友可以参考下...2021-05-13
- 什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
- 实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
- 什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
- 这篇文章主要介绍了vue项目中js-cookie的使用存储token操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-14
- 这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- 分享一个利用php根据日期或时间戳获取相应的干支纪年,生肖和星座信息的函数方法,具体函数代码以及使用方法如下: /** 判断干支、生肖和星座 */ function birthext($birth){ if(strstr($birth,'-')===false&&strlen($bi...2015-10-21
java8时间 yyyyMMddHHmmss格式转为日期的代码
这篇文章主要介绍了java8时间 yyyyMMddHHmmss格式转为日期的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17- 什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当访...2014-05-31
- 这篇文章主要介绍了C#判断日期是否到期的方法,是C#程序设计中非常实用的技巧,需要的朋友可以参考下...2020-06-25
- 在本篇内容中小编给大家整理了关于C#比较日期的方法和相关知识点,有需要的朋友们学习下。...2020-06-25