PHP极速入门
Posted 汤米先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP极速入门相关的知识,希望对你有一定的参考价值。
文章目录
- 前言
- 一. PHP概述
- 二. PHP运算符
- 三. 条件语句
- 四. 数组
- 五. 循环
- 六. 函数
- 七. 表单提交
- 八. 多维数组
- 九. 包含文件
- 十. 文件处理
- 十一. 文件上传漏洞
- 十二. cookie
- 十三. session
- 十四. Email
- 十五. 错误处理方法
- 十六. 过滤器
- 十七. JSON
- 十八. 连接mysql
前言
本人有python和Java的语言基础,本篇学习笔记也是针对我个人情况来写的,其中语言相似部分都忽略了。和我有同样基础的能够参考本篇博客极速入门php。其中多处代码来源于菜鸟教程,大家也可选择到菜鸟教程学习。
一. PHP概述
php是超文本预处理器的简称,是一种被广泛应用的开源通用的服务器端脚本语言,适用于Web开发并可嵌入html中。
二. PHP运算符
.:并置连接符,可以连接两个字符串。
1. 比较运算符
xy 等于
x=y 绝对等于 x与y相等,且类型相同。
2. 逻辑运算符
除and,or,&& ,||外,还有
x xor y ,异或 ,如果 x 和 y 有且仅有一个为 true,则返回 true
3. 数组运算符
x == y (相等)——如果 x 和 y 具有相同的键/值对,则返回 true
x === y(恒等)——如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x <> y(不相等)——如果 x 不等于 y,则返回 true
4. 组合比较符
又称太空船操作符
$c = $a <=> $b;
解析如下
如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 $c 的值为 -1。
三. 条件语句
- if 语句 - 在条件成立时执行代码
- if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
- switch 语句 - 在若干条件之一成立时执行一个代码块
四. 数组
$cars=array(“Volvo”,“BMW”,“Toyota”);
$cars[0]=“Volvo”;
$cars[1]=“BMW”;
$cars[2]=“Toyota”;
获取长度:count(cars)
遍历数组:
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
echo $cars[$x];
echo "<br>";
?>
1. 关联数组
自定义key-value值
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
等同于
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
遍历:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
?>
2. 数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
五. 循环
- while - 只要指定的条件成立,则循环执行代码块
- do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
- for - 循环执行代码块指定的次数
- foreach - 根据数组中每个元素来循环代码块
foreach ($array as $value)
要执行代码;
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
foreach ($array as $key => $value)
要执行代码;
每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
六. 函数
七. 表单提交
html通过form表单,将用户输入的数据传入welcome.php页面
php页面可得到数据,并将其打印出来。
要带上请求类型
欢迎<?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?> 岁。
八. 多维数组
1. 二维数组
形式一:
<?php
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
echo $cars['0'][0
?>
打印结果为Volvo
形式二:
<?php
$sites = array
(
"runoob"=>array
(
"菜鸟教程",
"http://www.runoob.com"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘宝",
"http://www.taobao.com"
)
);
echo $sites['runoob'][0] . '地址为:' . $sites['runoob'][1]
?>
打印结果为:
菜鸟教程地址为:http://www.runoob.com
2.三维数组
<?php
// 创建三维数组
$myarray = array(
array(
array(1, 2),
array(3, 4),
),
array(
array(5, 6),
array(7, 8),
),
);
// 输出数组信息
print_r($myarray);
?>
更多维数组以此类推
九. 包含文件
执行包含文件语句,是其他文件代码执行到当前代码中来,通常解决部分标准的页头页脚等有共同部分的修改繁琐问题。
include和require
两者在处理执行错误时的方法不一样,执行成功的效果相同。
- require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
- include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
语法 :
<?php include 'header.php'; ?>十. 文件处理
1. 打开文件
$file=fopen("welcome.txt","r");
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
2. 关闭文件
fclose($file);
3. 判断遍历到末尾
if (feof($file)) echo "已经到达文件结尾";
逐行读取:
<?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))
echo fgets($file). "<br>";
fclose($file);
?>
逐字符读取:
<?php
$file=fopen("welcome.txt","r") or exit("无法打开文件!");
while (!feof($file))
echo fgetc($file);
fclose($file);
?>
十一. 文件上传漏洞
允许用户上传文件是一个巨大的安全风险。对于普通用户要慎重使用本功能。
案例:
1.表单上传
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
enctype 属性规定了在提交表单时要使用哪种内容类型
multipart/form-data表示二进制
type=“file” 属性规定了应该把输入作为文件来处理
2.上传结果
<?php
if ($_FILES["file"]["error"] > 0)
echo "错误:" . $_FILES["file"]["error"] . "<br>";
else
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
?
3.上传限制
限制文件大小、类型等
<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp); // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb
&& in_array($extension, $allowedExts))
if ($_FILES["file"]["error"] > 0)
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
else
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
else
echo "非法的文件格式";
?>
4.保存上传文件
<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp); // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb
&& in_array($extension, $allowedExts))
if ($_FILES["file"]["error"] > 0)
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
else
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
// 判断当前目录下的 upload 目录是否存在该文件
// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists("upload/" . $_FILES["file"]["name"]))
echo $_FILES["file"]["name"] . " 文件已经存在。 ";
else
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
else
echo "非法的文件格式";
十二. cookie
1. 创建cookie
语法:
setcookie(name, value, expire, path, domain);
一般情况下只需要使用前三个参数
<?php
setcookie("user", "runoob", time()+3600);
?以上是关于PHP极速入门的主要内容,如果未能解决你的问题,请参考以下文章