【PHP】基础知识整理

变量基本类型测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
//echo "Hello World!";
#单行注释
/*
多行注释
*/
//phpinfo();
//变量的写法
//$变量名
//print_r 输出数组

//$a = 10; //变量名区分大小写
//$A = 20;
//echo isset($a);
// var_dump(isset($c));

//gettype返回php类型
/*
整型
浮点型
字符串
布尔 bool
数组 array
NULL 空对象
资源 resource
对象 (面向对象)
*/

//测试
//var_dump()是详细输出变量类型

$a = -1;
echo (gettype($a)); //Integer整型
echo ' ';
$a = 1.2;
echo (gettype($a)); //double
echo ' ';
$a = "51";
echo (gettype($a)); //string
echo ' ';
$a = false;
echo (gettype($a)); //boolean
echo ' ';
$a = array(1,2,"baidu",2.1);//索引数组
echo (gettype($a)); //array分为两种类型、索引数组、关联数组
echo ' ';
$a = NULL;
echo (gettype($a)); //NULL类型
echo ' ';


?>

运算符测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
$num1 = 10;
$num2 = 20; //除数不能为零

//加减乘除
$a1 = $num1 + $num2;
$a2 = $num1 - $num2;
$a3 = $num1 * $num2;
$a4 = $num1 / $num2;

echo $a1;
echo "<br/>";
echo $a2;
echo "<br/>";
echo $a3;
echo "<br/>";
echo $a4;
echo "<br/>";


$a1 = 9;
$a2 = 4;
$a3 = $a1 % $a2; //取余
echo $a3;
echo "<br/>";

// ++ --
//前++
//后++
//前--
//后--
$a = 10;
echo $a++;
echo "<br/>";
echo $a;
echo "<br/>";
echo ++$a;

//比较运算符
//> >= < <= != == === !==
//返回值boolean

$a = 10;
$b = 20;

echo "<br/>";
var_dump($a!=$b); //true

echo "<br/>";
$a = "10"; //string
$b = 10; //integer
var_dump($a!==$b); //false

//三元运算符 ? :
echo "<br/>";
$a = 20;
$b = 10;
echo $a>$b?"Hellow":"Go"; //输出Hellow

//&& || ! 与或非
echo "<br/>";
$a = false;
$b = false;

var_dump(!$b);

//字符串运算符.
echo "<br/>";
$a = "gylq.";
$b = "github.io";

echo $a.$b; //.起连接作用



?>

控制结构测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php

$a = 30;
$b = 20;
//php控制结构


//if - else

// if ($a > 5) {
// // code...
// echo $a;
// }else{
// echo "xxx";
// }
// echo "<hr/>" //下划线

// switch
// 整型、字符串
// switch ($a) {
// case 1:
// echo "a=1";
// break;
// case 2:
// echo "a=2";
// break;
// case 3:
// echo "a=3";
// break;
// default:
// echo "a=?";
// break;
// }

//循环结构

//while
// while ($a < $b) {
// // code...
// echo "a=$a,b=$b"."<br/>";

// $a++;
// }

// for ($i=0; $i < 10; $i++) {
// // code...
// echo $i."<br/>";
// }

//do-while
// do {
// // code...
// echo "a=$a,b=$b"."<br/>";
// $a--;
// } while ($a > $b);

for ($i=1; $i < 10; $i++) {
// code...

if($i == 5)
continue; //break是跳出整个循环,continue是跳出本次循环
echo "i=$i<br/>";
}
?>

字符串函数使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
$a = "baidu";
$b = "taobao";

// $c = 'xxxx$a\txxxx';
// $d = "xxxx$a\txxxx"; //双引号是解释变量,单引号不解释

// echo "c=".$c."<br/>";
// echo "d=".$d."<br/>";

//字符串的常用函数
header("Content-type:text/html;charset=utf-8"); //解码
$a = "gylq.gitgylqhub.io.baidu.com.cn.baidu.com.cn";
$b = "背景";

//strlen(返回字节长度)
// echo strlen($b)."<br/>";//一个汉字占3个字节.返回字节长度
// echo $b; //

//mb_strlen(返回解码长度的真实)
echo "a mb_strlen = ".mb_strlen($a,"utf-8")."<br/>";
echo "b mb_strlen = ".mb_strlen($b,"utf-8")."<br/>";

//strpos 返回字符串第一次出现的位置
echo strpos($a, 'gi')."<br/>";

//stripos(返回字符串第一次出现的位置不区分大小写)
echo stripos($a,'Gi')."<br/>";

//strrpos(从右边开始数)
echo strrpos("You love php, I love php too!","php")."<br/>";

//str_replace(替换函数) str_ireplace就是不区分大小写
$c = str_replace(gylq, baidu, $a);
echo $c."<br/>";

//strstr 查找字符串首次出现位置 stristr(不区分大小写)
echo strstr($a,"g")."<br/>";

//substr 截取字符串 strrchr(从右边截取)
//strrchr 如果needle包含了不止一个字符,那么仅使用第一个字符。该行为不同于strstr()。
//strrchr 如果needle不是一个字符串,那么将被转化为整型并被视为字符顺序值。
echo substr($a, 5,10)."<br/>";
echo strrchr($a, "b")."<br/>"; //取文件后缀名会用到

//split 正则分割 explode 字符串分割成数组 implode 数组转化为字符串
$website = "gylq.github.io";
$arrstr = explode(".", $website);
print_r($arrstr);
$newsite = implode($arrstr,".");
echo "<br/>".$newsite;

//trim 去除首位的空格符 ltrim左边空格 rtrim右边空格
$user = " userxxx ";
echo "<br/>".trim($user)."<br/>";
echo "<br/>".$user."<br/>";

//addslashes 自动过滤点引号变转义
//htmlspecialchars

$xss = "<script>alert(123)</script>";
echo htmlspecialchars($xss);
echo addslashes($xss);


?>

数组的一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
$a = "aaaa";
$b = 123;

$arr = array(1,2,3,"baidu","shaghai"); //索引数组

//print_r输出数组
//count输出数组大小
/*
foreach ($arr as $key => $value) {
// code...
echo $key,"----".$value."<br/>";
}
*/

// $arr1 = array(
// "aa"=>"wuhan",
// "bb"=>10,
// "cc"=>"beijing"
// ); // 关键型数组
// foreach ($arr1 as $key => $value) {
// // code...
// echo $key,"----".$value."<br/>";
// }


//数组的增删改查
// $arr = array("a","vv","cc");

// $arr[] = "ff"; //增

// unset($arr[1]); //删

// $arr[2]="gylq.github"; //改
// print_r($arr);

//each
//list 数组遍历
// while ($row = each($arr)) {
// // code...
// list($k,$v) = $row;
// echo $k."---".$v."<br/>";
// }

//array_key_exists() 判断键值是否存在

// $arr = array(
// "a"=>"xxx",
// "b"=>"xada",
// "c"=>"777"
// );

// var_dump(array_key_exists("a", $arr));
// var_dump(in_array("777", $arr));
// var_dump(array_keys($arr));

for($i = 1 ; $i<10; $i++)
{
for($j = 1; $j<= $i; $j++)
{
echo $j."*".$i."=".($j*$i)."&nbsp;&nbsp ";
}

echo "<br/>";
}
?>

超全局变量的一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>POST</title>
</head>
</html>

<form action="1.php" method="post">
用户:<input type="text" name="a1"><br/>
密码:<input type="text" name="b1"><br/>
<input type="submit" value="提交">
</form>

<?php

// // 无参函数
// function a(){
// echo "gylq.github.io<br/>";
// echo "123.github.io<br/>";
// echo "312.github.io<br/>";
// echo "gy222.github.io<br/>";
// echo "gy21lq.github.io<br/>";
// }

// //调用函数
// //a();

// //有参函数
// function b($a, $c){
// $x = $a * $a + $c * $c;
// return $x;
// }

// $y = b(3,4);

// echo $y;

//超全局变量
//GLOBALS 超全局数组
$y = "www.baidu.com";
//var_dump($GLOBALS);
//echo $y;
// echo $GLOBALS['GLOBALS']["y"];

//var_dump($_SERVER);

// echo $_SERVER["REMOTE_ADDR"];
// echo "<br/>";
// echo $_SERVER["HTTP_USER_AGENT"];

//GET测试
// function getAdd($a,$b){
// return $a+$b;
// }

// if(empty($_GET)){
// echo "no get<br/>";
// }else{
// $x = $_GET["a"];
// $y = $_GET["b"];
// $c = getAdd($x,$y);
// echo $c;
// }


?>

<?php
//GET测试
function getAdd($a,$b){
return $a+$b;
}

if(empty($_GET)){
echo "no get<br/>";
}else{
$x = $_GET["a"];
$y = $_GET["b"];
$c = getAdd($x,$y);
echo $c;
}

if(empty($_POST)){
echo "no post<br/>";
}else{
$a = $_POST["a1"];
$b = $_POST["b1"];

echo "$a -- $b <br/>";
}

//$_REQUEST = $_GET + $_POST

var_dump($_REQUEST);
?>

PHP的变量与作用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

define("PI",3.14);

// echo PI;

// var_dump(defined("PI")); //检测是否定义过

//全局变量
//局部变量


// echo "aaa";
// echo "aaa";
// echo "aaa";
// echo "aaa";

// $str = "www.x.com";

function a($x){
$x = $x + 10;
echo "function a :".$x."<br/>";
}

function b(&$x){
$x = $x + 10;
echo "function b :".$x."<br/>";
}

function c($x){
global $aa;

$x = $x * 10;
echo "function c: $x <br/>";
$aa++;
}

$aa = 100;

c($aa);

echo "aa = $aa"."<br/>";


?>

PHP的会话技术操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
登陆页面 - 2.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>session登陆测试</title>
</head>
<body>
<form action="1.php" method="post">
用户:<input type="text" name="user" />
密码:<input type="password" name="pass" />
<input type="submit" value="提交" />
</form>
</body>
</html>

验证页面 - 1.php
<?php
header("Content-type:text/html;charset=utf-8");
session_start();

if(empty($_POST)){
echo "无法登陆<br/>";
echo "<a href='2.php'>请登录</a>";
}else{
$name = $_POST["user"];
$pass = $_POST["pass"];

if($name == "admin" && $pass = "123"){
$_SESSION['name']="admin";
header("location: 5.php");
}else{
echo "用户名或密码错误<br/>";
echo "<a href='2.php'>请登录</a>";
}
}
?>

登陆成功页面 - 5.php
<?php
header("Content-type:text/html;charset=utf-8");
session_start();

if(empty($_SESSION)){
echo "无权登陆<br/>";
echo "<a href='2.php'>请登录</a>";
}else{
$name = $_SESSION["name"];
echo "欢迎 $name 登陆系统";
}
?>

PHP的文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
- - index.php
<?php
header("Content-type:text/html;charset=utf-8");
// // 文件包含
// // require include require_once include_once
// echo "www.x.com<hr/>";
// require_once "array.php"; //include报错还是执行
// //require报错不执行

// echo "xxxx<hr/>";
// require_once "array.php";
// echo "xxxx<hr/>";
// require_once "array.php"; //只执行一次
// echo "xxxx<hr/>";

// echo realpath("../../");
/*
$fileNames = opendir("."); //开文件夹
while($row = readdir($fileNames)) //读文件
{
echo $row."<br/>";
}

closedir($fileNames);

if(is_dir("2.php")){
echo "yes";
}else{
echo "no";
}
*/
// unlink("12313.php"); //删除文件

//file_get_contents() //读取内容 //file_put_contents写入内容

// $str = file_get_contents("array.php");

// var_dump($str);

//递归技巧

/*
$path 目录
$lev 层级 进入一层,目录更深,明显显示出来
*/
function showDir($path, $lev=0){
$fh = opendir($path);
while($row = readdir($fh)){
//如果目录为.和..就跳过
if(($row == '.') || ($row == '..')){
continue;
}
echo str_repeat("$nbsp;$nbsp;", $lev),$row,'<br />';
//如果目录里还有目录,继续往下读目录
if(is_dir($path.'/'.$row)){
showdir($path.'/'.$row,$lev+1);
}
}
closedir($fh);
}
showDir('..');
?>

-- array.php
<?php
header("Content-type:text/html;charset=utf-8");
// var_dump($_FILES);
if(empty($_FILES)){
echo "请上传文件";
}else{
// echo $_FILES['pic']['name']."<br/>";
// echo $_FILES['pic']['tmp_name']."<br/>";
define("PATH",__DIR__);
$path = PATH."/"."upload"."/images";
$dir1 = date("Ym");
$dir2 = date("d");
$fullPath = $path."/".$dir1."/".$dir2;
if(is_dir($fullPath))
{
echo "yes";
}else{
//echo "no";
mkdir($fullPath,0777,true);
}

$fileName = rand(100000,999999);
$fileType = strrchr($_FILES['pic']['name'], ".");
$fileName = $fileName.$fileType;

move_uploaded_file($_FILES['pic']['tmp_name'], $fullPath."/".$fileName);
}
?>

- -3.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试文件上传</title>
</head>
<body>

<form action="array.php" method="post" enctype="multipart/form-data">
<input type="file" name="pic" />
<input type="submit" />
</form>

</body>
</html>

-- 4.php
<?php
//D:\phpstudy pro\WWW
//echo __DIR__."<br/>";
//D:\phpstudy pro
//echo dirname(__DIR__);
define("PATH",__DIR__);
$path = PATH."/"."upload"."/images";
$dir1 = date("Ym");
$dir2 = date("d");
$fullPath = $path."/".$dir1."/".$dir2;
if(is_dir($fullPath))
{
echo "yes";
}else{
//echo "no";
mkdir($fullPath,0777,true);
}
?>

- - 6.php
<?php
$a=1;
$b=2;
$fh = opendir('..');
while($row = readdir($fh))
{
echo $row."<br/>";
}
?>

我的个人博客

孤桜懶契:http://gylq.github.io

本文标题:【PHP】基础知识整理

文章作者:孤桜懶契

发布时间:2021年07月18日 - 17:56:34

最后更新:2021年10月20日 - 13:23:54

原始链接:https://gylq.gitee.io/posts/82.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------