PHP教程

PHP总结2

本文主要是介绍PHP总结2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

PHP总结2

时间与日期;字符串;PHP函数

时间与日期

PHP时间戳(UNIX);

UNIX时间戳(timestamp)是php中关于时间日期一个很重要的概念,他表示从1970年1月1日00:00:00到当前时间的秒数之和。
PHP提供了内置函数time()来获取服务器当前时间戳。
例子:

<?php
echo time();
?>

上面的例子运行后得到的是一串类似这样的数字:1279115455
我们可以通过data()等函数将它转换成我们需要的日期格式。
例子

<?php
echo time();
echo date("Y-m-d h:i:s",time());
?>

如果你出现时区错误码点击这里大概在5分左右。

时间格式化(date())

date()函数用于格式化时间,返回一个字符串。
语法;

string date(strin format ,时间戳);//提醒PHP每句代码结束都要带;号

参数 format 表示时间格式化的方式,可能的方式如下:

格式化方式说明:格式化方式说明
Y4位数字年,y为2位数字,如99即1999年
m数字月份,前面有前导0,如01。n 为无前导0数字月份
F月份,完整的文本格式,例如 January 或者 March
M三个字母缩写表示的月份,例如 Jan 或者 Mar
d月份中的第几天,前面有前导0,如03。j 为无前导0的天数
w星期中的第几天,以数字表示,0表示星期天
z年份中的第几天,范围0-366
W年份中的第几周,如第32周
H24小时格式,有前导0,h为12小时格式
G24小时格式,无前导0,g为对应12小时格式
i分钟格式,有前导0
s秒格式,有前导0
A大写上下午,如AM,a为小写

可选参数 timestamp 表示时间戳,默认为 time() ,即当前时间戳
我们可以通过 date() 函数提供的丰富格式化来显示需要的时间日期,如下面的例子

date("Y-m-d",time());		//显示格式如 2008-12-01
date("Y.m.d",time());		//显示格式如 2008.12.01
date("M d Y",time());		//显示格式如 Dec 01 2008
date("Y-m-d H:i",time());	//显示格式如 2008-12-01 12:01

字符串

字符串的获取

substr(string,start,len):从字符串中获取其中的一部分,从start开始到len位结束。
strstr(string,str):查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符
strrchr(string,str):查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
例子:

//获取 "我爱我.的.祖国.png" 的后缀名
$str = "我爱我.的.祖国.png";
$s = substr(strrchr($str,'.'),1);
echo $s;
$arr = explode(".",$str);
$ext = array_pop($arr);
echo "<br>$ext<br>";

字符串替换

str_replace(search,replace,string):使用一个字符串替换字符串中的另一些字符
例子:

$str= "我爱我.的.祖国.png";
$str1=str_replace("祖国","国家",$str);
//将祖国换成国家

字符串计算

strlen(string):取得字符串的长度
strpos(string,str,start) 函数用于定位字符串第一次出现的位置,返回整型。
strrpos():定位字符串最后一次出现的位置
例子

$str="山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴
	,阅金经。无丝竹之乱耳,无案牍之劳形。
	南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?";
    $sub=mb_substr($str,0,30,"utf-8");
	echo$sub;
	echo"<br>"
	//获取后缀名 "我爱我.的.祖国.png" 
	$str= "我爱我.的.祖国.png";
    $end=strrchr($str, ".");

PHP函数

PHP 的函数分为用户自定义函数和系统内置函数。内置函数可以直接使用,用户自定义函数需要使用关键字 function 来定义

自定义函数

函数(function),可以看着是为实现某个功能的独立的程序语句集合。我们将某个功能写成一个函数后,就可以在需要的地方方便的使用它。合理的使用函数,可以让我们的PHP程序更加简洁易读,更加科学。
语法

function function_name(arg1,arg2,……)
{
    函数功能代码
}

语法解读:
1 使用function关键字定义一个函数
2 function 后面紧跟函数名,函数名字以字母或者下划线开始,命名应该提示其功能
3 函数名字后面是一对小括弧,里面是函数的参数,参数之间以“,”号分隔,但参数不是必须的
4 括弧()后面跟着“{}”,内部是该函数要实现的功能语句
例子

<?php
/* 定义函数开始 */
function print_string()
{
    echo "你好!";
}
/* 定义函数结束 */
print_string();    //执行该函数,执行结果是输出“你好!”字符串
?>
//任何有效的 PHP 代码都有可能出现在函数内部,
//甚至包括其它函数和类定义,函数名是非大小写敏感的
//,不过在调用函数的时候,通常使用其在定义时相同的形式。

函数的参数

参数的功能是传递信息到函数。
使用参数的例子

<?php
function city_name($city)
{
    echo "城市名称为:".$city;
}
city_name("shanghai");    //执行该函数,执行结果是输出“城市名称为:shanghai”字符串
?>

可以给函数的参数指定默认值,以便在没有指定参数值时,采用参数默认值。

<?php
function city_name($city = "beijing")
{
    echo "城市名称为:".$city;
}
$name = "shanghai";
city_name();    //执行结果是输出“城市名称为:beijing”
city_name($name);    //执行结果是输出“城市名称为:shanghai”
?>

从例子可以看出,传入参数的变量名( n a m e ) 和 定 义 函 数 的 参 数 变 量 名 ( name)和定义函数的参数变量名( name)和定义函数的参数变量名(city)无关。
接受多个参数:

<?php
function city_name($city, $zipcode)
{
    echo "城市名称为:".$city."<br />";
    echo "邮政编码:".$zipcode;
}
?>

函数的返回值

函数在处理完内部逻辑后,我们常常需要根据处理结果来决定下一步的操作逻辑,这时候就需要得到函数的处理结果。使用return()来返回函数处理结果。
函数返回值的例子:

<?php
function add($x)
{
    return $x+1;
}
echo add(2);    //输出函数的返回值,结果是输出 3
?>

函数返回值并不是指返回一个数值,可以返回包括字符串、数组、对象在内的任何类型。

比较下面两个例子的区别:

<?php
$x = 10;
function multiply($x){
    $x = $x * 10;
    return $x;
}
multiply($x);
echo $x;    //输出 10
?>

<?php
$x = 10;
function multiply($x){
    $x = $x * 10;
    return $x;
}
$x = multiply($x);
echo $x;    //输出 100
?>

另外PHP 内置了大量的函数,这使得 PHP 变得非常强大。这些函数几乎包括了我们需要处理的方方面面。

PHP 内置函数常用的有“字符串函数”、“数组函数”、“数据库函数”、“时间/日期函数”、“文件函数”、“图像函数”、“正则函数”、“URL函数”等。


PHP交互

$_GET

$_GET 变量用于接收表单 method=“get” 方式发送的表单信息
$_GET 变量的数据结构同 $_POST 类似,也是一个关联数组,键名为表单元素的 name,用于收集以 HTTP GET 方式请求的数据。

表单 form.html:

<html>
<body>
<form name="commentform" method="get" action="comment.php">
<p>
称呼: <input type="text" name="nickname" />
</p>
<input type="submit" value="提 交" />
</form>
</body>

将前面的例子表单改为 GET 方式,输入称呼后,在浏览器地址栏,看起来类似如下(IE 浏览器下中文可能会经 encode 编码):

http://www.5idev.com/html/comment.php?nickname=%D0%A1%C3%F7 (只是例子不具备打开共能)

取得 GET 表单数据:

<?php
echo '您的称呼是:',$_GET["nickname"]; 		//输出:您的称呼是:小明
?>

提示

GET 方式会把表单数据暴露在浏览器地址栏里,因此不宜发送敏感数据(如密码等),敏感信息发送请使用 POST 方式。
GET 方式对发送的信息量有一定限制,如果发送较大的信息,请使用POST 方式。
GET 方式访问的页面可以加入收藏夹而在以后可以直接访问,而 POST 方式访问的页面则不能

HTTP GET

HTTP GET
HTTP GET 方式不仅是用于表单数据发送,它是指更广泛的以实体的方式得到由请求 URL (浏览器地址)所指定资源的信息。具体参见《XHTML Get与Post》。

article.php 中取得 GET 数据:

<?php
echo $_GET["type"];		//输出 2
echo $_GET["id "];		//输出 10
?>

PHP $_REQUEST

在 PHP 中还预定义了 $_REQUEST 变量,它包含了 P O S T 、 _POST 、 P​OST、_GET 、和 $_COOKIE 。其访问方式同 $_POST 等:

<?php
echo $_REQUEST["nickname"]	//输出用户输入的称呼
echo $_REQUEST["id "];		//输出 10
?>

PHPJSON

JSON 函数

函数描述
json_encode对变量进行 JSON 编码
json_decode对 JSON 格式的字符串进行解码,转换为 PHP 变量

json_encode

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

语法

string json_encode ( $value )
实例
以下实例演示了如何将 PHP 数组转换为 JSON 格式数据:

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

以上代码执行结果为:

{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}

json_decode

PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。
语法

mixed json_decode ( j s o n s t r i n g [ , json_string [, jsons​tring[,assoc = false [, $depth = 512 [, $options = 0 ]]])

参数

  • json_string : 待解码的 JSON 字符串,必须是 UTF-8 编码数据

  • assoc : 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。

  • depth : 整数类型的参数,它指定递归深度

  • options : 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING 。
    实例
    以下实例演示了如何解码 JSON 数据:

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

以上代码执行结果为:

object(stdClass)#1 (5) {
[“a”] => int(1)
[“b”] => int(2)
[“c”] => int(3)
[“d”] => int(4)
[“e”] => int(5)
}
array(5) {
[“a”] => int(1)
[“b”] => int(2)
[“c”] => int(3)
[“d”] => int(4)
[“e”] => int(5)
}

PHP $_POST

$_POST 变量用于接收表单 method=“post” 方式发送的表单信息。

PHP $_POST

$_POST 变量用于获取由 HTTP POST 方式发送的表单数据。其数据结构是一个关联数组,键名为表单元素的 name ,值为对应的表单取值。

表单 form.html:

<html>
<body>
<form name="commentform" method="post" action="comment.php">
<p>
称呼: <input type="text" name="nickname" />
</p>
<input type="submit" value="提 交" />
</form>
</body>
</html>

在 comment.php 中,打印出 $_POST 信息:

<?php
print_r($_POST);
?>

输出如下:

Array
(
=> 小明
)

访问 $_POST 变量

可以像访问普通数组一样方便的访问 $_POST 变量:

<?php
echo '您的称呼是:',$_POST["nickname"]; 
?>

案例
模拟登录

$list = array(“mumu”=>123,“zql”=>“zmm123”,“曾庆林”=>“456”)
如果用户没有输入 用户名 密码 则退出程序
如果 用户名密码不在list中则提示用户名密码错误
如果 用户名密码都正确 则 提升 欢迎xx,登录成功

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
  <?php
  
 
   
    $list = array("mumu"=>123,"zql"=>123,"曾庆林"=>"456");
  if(isset($_POST["user"])&&isset($_POST["pwd"])){
        $user = $_POST["user"];
        $pwd = $_POST["pwd"];
        if(array_key_exists($user,$list)){
            if($list[$user]==$pwd){     
                echo "<script>alert('登录成功!');</script>";
            }else{            
                echo "<script>alert('用户名或密码错误')</script>";
            }
        }else{
            echo "<script>alert('用户名未注册')</script>";
        }
        
  }
 ?>
 <h1>登录</h1>
<form action="" method="POST">
    用户名: <input type="text" name="user"><br>
    密&emsp;码: <input type="password" name="pwd"/><br>
    &emsp;&emsp;&emsp; <input type="submit" value="登录">
</form>
</body>
</html>

PHP Session

Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导

session 是一种客户与网站(服务器)更为安全的对话方式。一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。

创建 session

要创建 session ,必须先使用 session_start() 函数开启一个 session 会话,系统会分配一个会话 ID:

<?php
session_start();
?>

存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:
语法
$_SESSION[‘views’]=1;

读取 session

PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量。
例子:

<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>

销毁 session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量
例子:

<?php
   session_start();
   if(isset($_SESSION['views']))
   {
       unset($_SESSION['views']);
   }
?>

另一种方式

您也可以通过调用 session_destroy() 函数彻底销毁 session:
   <?php
    session_destroy();
    ?>

案例
当前用户浏览页面的次数

<?php
	session_start();//开启session
	//告诉浏览器返回的是html编码是utf-8
	header("Content-Type:text/html;charset=utf-8");
	if(isset($_SESSION['views'])){
		//如果存在views 它的值+1
		$_SESSION['views']=$_SESSION['views']+1;
		
	}else{
		//如果不存在view设置值为1
		$_SESSION['views']=1;
	}
	//输出views的值
echo"累计浏览量:",$_SESSION['views'];
?>

文件上传

文件上传概述
文件上传功能是网络生活中经常使用的一个功能。使用 PHP 可以很方便的实现文件上传,其具体流程如下:
表单选择文件 -> 检查文件大小及类型 -> 生成临时文件 -> 移动临时文件至文件存储目录 -> 记录文件信息以便于管理。
在文件上传功能中,需要考虑以下几个问题:
限定上传文件的大小
限定上传文件的类型
只允许可信任的用户上传文件,防止远程提交
服务器端文件存储目录
对文件上传后的管理

HTML

在文件上传表单中,需要将表单的 ENCTYPE 属性设置为 multipart/form-data :

<form enctype="multipart/form-data" action="upload.php" method="post">
<label for="file">请选择上传的文件</label>//
<input type="file" name="file" size="40" />
<br />
<input type="submit" name="submit" value="确定" />
</form>

文件上传处理

PHP 提供了内置变量 $_FILES 来处理上传的文件。

$_FILES 变量说明(设定表单 name 属性为 file ): $_FILES 变量说明
$_FILES[“file”][“name”]客户端提交文件的原名称
$_FILES[“file”][“type”]浏览器提供的文件的 MIME 类型,如 gif 图片为 image/gif 。不过此类型在 PHP端并不检查,因此不要想当然认为有这个值
$_FILES[“file”][“size”]已上传文件的大小,单位为字节
$_FILES[“file”][“tmp_name”]文件被上传后在服务端储存的临时文件名
$_FILES[“file”][“error”]和该文件上传相关的错误代码,为0则表示上传成功

当点击“确定”按钮提交表单至 upload.php 后,可以利用 $_FILES 变量来处理提交的文件
例子
HTML:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="./jquery-3.6.0.js"></script>
	</head>
	<body>
		 
		<input type="file" name="file" id="file"> 
		<button class="btn">提交</button>
		<div class="tip"></div>
		<script>
			// 目标jq实现上传文件
			$(function(){
				$(".btn").click(function(){
					// 创建一个文件数据格式
					var formData = new FormData();
					// $("#file").get(0) jq转js对象
					// .files[0] 文件上传通常取第0个
					formData.append("file",$("#file").get(0).files[0]);
					$.ajax({
						url:"./up.php",
						method:"POST",
						data:formData,
						// 不处理data数据
						processData: false,
						// 内容类型为false
						contentType: false,
					})
					.then(res=>{
						console.log(res);
						if(res.status==0){
							$(".tip").append(`<img src="${res.filename}" width="200"/><br/>`)
						}
					})
				})
				
			})
		
		</script>
	</body>
</html>

php:

<?php
header("Content-Type:application/json;charset=utf-8");

// var_dump($_FILES["file"]);
// 移动临时文件到当前文件夹
// move_uploaded_file('临时地址','目标地址')
$re = array("msg"=>"上传失败","status"=>1);
$arr =  explode(".", $_FILES["file"]["name"]);
// 文件的后缀名
$ext = array_pop($arr);
// 允许的后缀
$list = ["png","jpg","jpeg","gif","webp","svg"];
// 如果错误状态码为0,上传成功
if($_FILES["file"]["error"]==0){
	// 类型必须是图片类型
	if(in_array($ext,$list)){
		// 大小不能超过500k
		if($_FILES["file"]["size"]<1024*500){
			// 添加文件夹
			$path = "uploads/";			 
			// 文件名拼接
			$filename =$path . time() . ".".$ext;
			// 移动文件到当前目录
			move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
			// 获取文件名
			
			// 设置返回数据
			$re["msg"] = "上传成功";
			$re["status"] = 0;
			$re["filename"] = $filename;
		}else{
			$re["msg"] = "文件不能超过500k";
			$re["status"] = 1;
		}
		
	}else{
		$re["msg"] = "类型错误";
		$re["status"] = 1;
	}
 
}
echo json_encode($re);

 
 
 
?>
这篇关于PHP总结2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!