20201016-PHP基础练习

20201016-PHP基础练习

十月 17, 2020

20201016-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
141
142
143
<?php
strlen([string]);
#检查字符串的长度

mb_strlen([string],[$encoding]);
#检查字符串长度运行自定义字符编码,encoding为可选参数

addslashes([string]);
#使用反斜线引用字符串

bin2hex([string]);
#将字符串转换为16进制

chop([string],[$charlist]);
/*
rtrim的别名 删除字符串末端的空白字符(或者其他字符)
charlist可选参,缺省默认删除末端空白支付,charlist=要指定删除的字符
空白字符:
" " (ASCII 32 (0x20)),普通空白符。
"\t" (ASCII 9 (0x09)),制表符。
"\n" (ASCII 10 (0x0A)),换行符。
"\r" (ASCII 13 (0x0D)),回车符。
"\0" (ASCII 0 (0x00)),NUL 空字节符。
"\x0B" (ASCII 11 (0x0B)),垂直制表符。
*/

chr([ascii]);
#返回指定的ascii字符

crypt([string],[$salt]);
#单向字符串散列 返回一个基于UNIX DES算法或系统上其他可用的替代算法的散列字符串。
#salt可选参数(应该是盐)官方建议为了更好的安全性,请确保指定一个足够强度的盐值。

htmlentities([string],[$flags],[$character_set],[$double_encode]);
#将字符转换为html转义字符
#flags可选参数(掩码标记官方提供方法)默认为ENT_COMPAT|ENT_HTML401
/*
ENT_COMPAT 会转换双引号,不转换单引号。
ENT_QUOTES 既转换双引号也转换单引号。
ENT_NOQUOTES 单/双引号都不转换
ENT_IGNORE 静默丢弃无效的代码单元序列,而不是返回空字符串。 不建议使用此标记, 因为它» 可能有安全影响。
ENT_SUBSTITUTE 替换无效的代码单元序列为 Unicode 代替符(Replacement Character), U+FFFD (UTF-8) 或者 &#xFFFD; (其他),而不是返回空字符串。
ENT_DISALLOWED 为文档的无效代码点替换为 Unicode 代替符(Replacement Character): U+FFFD (UTF-8),或 &#xFFFD;(其他),而不是把它们留在原处。 比如以下情况下就很有用:要保证 XML 文档嵌入额外内容时格式合法。
ENT_HTML401 以 HTML 4.01 处理代码。
ENT_XML1 以 XML 1 处理代码。
ENT_XHTML 以 XHTML 处理代码。
ENT_HTML5 以 HTML 5 处理代码。
*/
#double_encode 可选参数编码字符的方式

implode([$glue stringr],[$pieces array]);
#将一个一维数组转换为字符串
#$glue默认为空,将一维数组的值链接为一个字符串
#你想要转换的数组

md5_file([string],[bool]);
#参数一 File 文件名(必要) ,参数二raw_output 布尔类型 如果被设置为 TRUE,那么报文摘要将以原始的 16 位二进制格式返回。(可选)
#返回文件的md5

str_replace();
#官方:"子字符串替换" (迷惑)
#个人理解 对字符串进行替换 参数可为数组类型
#来自官方文档:https://www.php.net/manual/zh/function.str-replace.php
/*
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
参数:
如果没有一些特殊的替换需求(比如正则表达式),你应该使用该函数替换 ereg_replace() 和 preg_replace()。
如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。
如果 search 和 replace 都是数组,它们的值将会被依次处理。
search
查找的目标值,也就是 needle。一个数组可以指定多个目标。
replace
search 的替换值。一个数组可以被用来指定多重替换。
subject
执行替换的数组或者字符串。也就是 haystack。
如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。
count
如果被指定,它的值将被设置为替换发生的次数。

该函数返回替换后的数组或者字符串。

*/

str_split([string],[int]);
#参数一 要分割的字符串(必要) 参数二要分割的每一段的长度,缺省默认为 1 整数型

split([string],[string],[int]);
#用正则表达式将字符串分割到数组中
#参数一 正则表达式 参数二 要处理的字符串 参数三 返回的元素数量

strcmp([string],[string]);
# 字符比较(官方:二进制安全字符比较)
# 区分大小写
# 返回值 相等 返回0 如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;

strcasecmp([string][string]);
#和strcmp几乎一样 但是不区分大小写 是一种更安全的写法

strstr([string][mixed][bool]);
#关于mixed类型
/*
说明一个参数可以接受多种不同的(但不一定是所有的)类型。
*/
#查找字符串的首次出现,该函数区分大小写
#参数一 字符串(你要搜索的字符串) 参数二 (如果它不是一个字符串那么它将被转化为整型并且作为字符的序号来使用。 参数三 bool 为真返回搜索值之前的字符串,为假反之 缺省为假

preg_match([string],[string],[array],[init],[init]);
#执行匹配正则表达式
#参数:$pattern(要搜索的模式,字符串形式),$subject(输入字符串),$matches(如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推)

preg_match_all();
#执行一个全局正则表达式匹配
#来自官方的preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int
#搜索subject中所有匹配pattern给定正则表达式 的匹配结果并且将它们以flag指定顺序输出到matches中.
#在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索.


intval([mixed],[init]);
#获取变量的整数值
#参数一 要装换成init的数值 参数二 要使用的进制

floatval([mixed]);
#获取变量的浮点值


strval([mixed]);
#获取变量的字符串值

settype([mixed],[string]);
#设置变量的类型
#参数一可为任意类型(你要转换的对象)
#参数二的可能值为:
#“boolean”
#“integer”
#“float”
#"string"
#"array"
#"object"
#“null”

?>

代码实例:

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
<?php

ini_set('display_errors',1); //错误信息
ini_set('display_startup_errors',1); //php启动错误信息
error_reporting(-1);

echo 'strlen:'.'<br>';
$a1 = 'w123t56k789';
echo $a1.'=>'.strlen($a1).'<br>==========================
<br>';

echo 'mb_strlen:'.'<br>';
$a2 = '我真的不想打$符号了';
echo $a2.'=>'.mb_strlen($a2,'utf-8');

echo '<br>==========================<br>';

echo 'addslashes:'.'<br>';
echo addslashes('ww".w/\ssss');

echo '<br>==========================<br>';
echo 'bin2hex:'.'<br>';
$a3 = 'weeeeeeemmmm';
echo $a3.'=>'.bin2hex($a3);


echo '<br>==========================<br>';
echo 'chop:'.'<br>';
$chop1 = "wqeqweqw ";
echo chop($chop1);

echo '<br>==========================<br>';
echo 'chr:'.'<br>';
echo chr(72).chr(72).chr(72);
echo '<br>==========================<br>';

echo 'crypt:'.'<br>';
echo crypt('asae4564','wqeqws');
echo '<br>==========================<br>';
echo 'htmlentities:'.'<br>';
echo htmlentities('wq/ e\ q/ qwew');
echo '<br>==========================<br>';

echo 'implode:'.'<br>';
$impstr = NULL;
$imparray = array("qweqw","wqewwq","12w");
echo implode($impstr,$imparray);

echo '<br>==========================<br>';

echo 'md5_file:'.'<br>';
$md5_file1 = '1.php';
echo md5_file($md5_file1);

echo '<br>==========================<br>';

echo 'str_replace:'.'<br>';
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;

echo '<br>==========================<br>';

echo 'str_split:'.'<br>';
echo str_split('wqe12');

echo '<br>==========================<br>';

echo 'split:'.'<br>';
$date="rehwrhweui/15/45/878";
list($s1,$s2,$s3) = split("[/.-]",$date);
echo "year:$year;month:$month;day:$day\n";
echo '<br>==========================<br>';

echo 'strcmp:'.'<br>';
$strcmp1 = 'www1';
$strcmp2 = 'www2';
echo strcmp($strcmp1,$strcmp2);

echo '<br>==========================<br>';

echo 'strcasecmp:'.'<br>';
$strcasecmp1 = 'Wwwwe';
$strcasecmp2 = 'wwwwe';
echo strcasecmp($strcasecmp1,$strcasecmp2);

echo '<br>==========================<br>';

echo 'strstr:'.'<br>';
$strstr1 = 'weqwe132456asdx';
echo strstr($strstr1,'13');

echo '<br>==========================<br>';

echo 'preg_match:'.'<br>';
echo preg_match("/php/i", "PHP is the web scripting language of choice.");

echo '<br>==========================<br>';

echo 'preg_match_all:'.'<br>';
$userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);


echo '<br>==========================<br>';

echo 'intval:'.'<br>';
echo intval(123.12).'<br>';
echo intval(55.01);
echo '<br>==========================<br>';

echo 'floatval:'.'<br>';
echo floatval('12.1488wsss');

echo '<br>==========================<br>';

echo 'strval:'.'<br>';
echo strval(123).'<br>';
echo strval('wqeqw').'<br>';

echo '<br>==========================<br>';

echo 'settype:'.'<br>';
$int1 = '123123';
$str1 = 6666;
var_dump($int1);
echo '<br>';
var_dump($str1);
settype($int1,"integer");
settype($str1,"string");
echo '<br>';
var_dump($int1);
echo '<br>';
var_dump($str1);

echo '<br>==========================<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
strlen:
w123t56k789=>11
==========================
mb_strlen:
我真的不想打$符号了=>10
==========================
addslashes:
ww\".w/\\ssss
==========================
bin2hex:
weeeeeeemmmm=>77656565656565656d6d6d6d
==========================
chop:
wqeqweqw
==========================
chr:
HHH
==========================
crypt:
wqCseATyTaLjQ
==========================
htmlentities:
wq/ e\ q/ qwew
==========================
implode:
qweqwwqewwq12w
==========================
md5_file:
e99426acf8e05c9c40871858ae011268
==========================
str_replace:
2
==========================
str_split:
Array
==========================
split:
year:;month:;day:
==========================
strcmp:
-1
==========================
strcasecmp:
0
==========================
strstr:
132456asdx
==========================
preg_match:
1
==========================
preg_match_all:
Array ( [0] => PHP [1] => Programming Language )
==========================
intval:
123
55
==========================
floatval:
12.1488
==========================
strval:
123
wqeqw

==========================
settype:
string(6) "123123"
int(6666)
int(123123)
string(4) "6666"
==========================

php中的判断语句

if:

1
2
3
4
5
6
7
8
<?php
$if1 = $_GET['id'];
if($if1 == 10){
echo '你输入的值等于'.$if1;
}else{
echo '你输入的值不等于10';
}
?>

image.png
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$id=$_GET[id];
switch ($id)
{
case 1:
echo '1';
break;
case 2:
echo '2';
break;
default:
echo '你输入的不是1也不是2'
}
?>

image.png
image.png
image.png

php中的循环语句

for:

1
2
3
4
5
6
7
8
9
10
11
<?php
for($i=0;$i<=10;$i++){
if($i<=5){
echo '小于5'.$i;
}else{
echo '大于5'.$i;
}

}

?>

image.png
foreach:

1
2
3
4
5
6
<?php
$i = array('1','2','3','4');
foreach($i as $a){
echo $a.'<br>';
}
?>

while:

1
2
3
4
5
6
7
<?php
$i = 10;
while($i!=0){
echo $i.'<br>';
$i--;
}
?>

ww

关于一些奇奇怪怪的报错:

报错信息:Call to undefined function mb_strlen()

解决方案:yum -y install php-mbstring