你好! 这是我自己编辑的一些知识点。如果你想学习PHP的有关知识, 可以仔细阅读这篇文章,了解一下关于PHP的基本语法知识。
PHP
PHP(“PHP: Hypertext Preprocessor”):超文本预处理器,一种服务器的HTML脚本/编程语言,是一种开放源代码,该语言让web开发人员快速的书写动态生成的网页。
语法
PHP代码标记
在PHP历史发展中,可以使用多种标记来区分PHP脚本。
- ASP标记:<% php代码 %>
- 短标记:<? php代码 ?>
- 脚本标记:<script language='php'>php代码</script>script>
- 标准标记(常用):<?php ?>
注释
单行文本注释
多行文本注释
注意:
- 分隔符使用英文状态下的分号(;)
- PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符
- PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯中就不建议使用标记结束符?>,PHP会自动从开始到最后全部认为是PHP代码,从而解析。
变量
- PHP中的所有变量都必须使用’$’
- 名字由字母、数字和下划线“—”构成,但是不能以数字开头
- 在PHP中本身还允许中文变量(不建议使用)
$var2=2;
unset($var2);
echo $var2;
预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
变量 | 描述 |
---|
$_GET | 获取所有表单以get方式提交的数据 | $_POST | POST提交的数据都会保存在此 | $_REQUEST | GET和POST提交的都会保存 | $_GLOBALS | PHP中所有的全局变量 | $_SERVER | 服务器信息 | $_SESSION | session会话数据 | $_COOKIE | cookie会话数据 | $_ENV | 环境信息 | $_FILES | 用户上传的文件信息 |
变量命名规则:
1.常量不需要使用“$”符号,一旦使用系统就会认为是变量;
2.常量的名字由字母、数字、下划线组成,不能以数字开头;
3.常量的名字通常是以大写字母为主(与变量以示区别);
4.常量命名规则比较变量要松散,也可以使用一些特殊字符,该方式只能使用define定义
注意:
1.define和const定义的常量是有区别的:在于访问权限区别;
2.定义常量通常不区分大小写,但是可以区分,可以参照define函数的第三个参数
3.变量类型
类型 | 描述 |
---|
整型interger | 数学中的整数 | 浮点型float/double | 数学中的小数 | 字符串string | 一串字符 | 数组array | 键值对的复合数据 | 对象object | 在面向对象中学 | NULL | 没有值(不区分大小写) | 布尔值boolean | 真假(不区分大小写) | 资源resource | 类似‘吸管’ |
-
isset()检测变量是否存在 -
empty()检测变量是否为空 -
gettype()检测类型
4.输出语句
字符串拼接
$name='tom';
$str='hello';
echo $name.$str;
运算符
算术运算符
+ - * / %
自增自减运算符
++ --
比较运算符
> >= < <= == === != !==
逻辑运算符
&& || !
赋值运算符
= += -= *= /= %=
条件语句
if语句
if (条件){
语句;
}else if (条件){
语句;
} else {
语句;
}
Switch语句
switch (表达式) {
case 值1: 语句;break;
case 值2: 语句;break;
...
default:
语句;
}
条件语句
for循环
for(初值;范围;递增) {
}
while循环
While(条件表达式) {
}
do…while循环
do {
} while(条件表达式);
数组
1.索引数组
$arr1=['hello','say','byebye'];
$arr2=array(23,56,34,12);
2.关联数组
$arr3=['class'=>'01','sex'=>'女','name'=>'lily'];
3.一维数组
$arr5= array('class'=>'01','sex'=>'女','name'=>'lily';
4.二维数组
$arr6=array( array('name'=>'saty','class'=>'num1','sex'=>'女'),
array('name'=>'daty','class'=>'num1','sex'=>'男')
);
5.三维数组
$arr1=array('冰箱'=>array(
'颜色'=>['银色', '金色'],'品牌'=>['海尔', '格力'],'产地'=>['北京', '上海']
)
,
'零食'=>array(
'量'=>['大袋', '小袋'],'品牌'=>['三只松鼠', '百草味'],'产地'=>['南京', '廊坊']
)
,
'服装'=>array(
'分类'=>['男装', '女装'],'品牌'=>['海澜之家', '361'],'产地'=>['保定', '廊坊']
)
);
遍历数组
1.count()是计算数组元素个数的方法
$arr7=array(3,23,67,95,23);
2.
k
e
y
代
表
数
组
中
元
素
的
索
引
号
,
key代表数组中元素的索引号,
key代表数组中元素的索引号,value代表数组中元素的值。
$arr8=array('name'=>'saty','class'=>'num1','sex'=>'女');
JSON_encode
json_encode —> 对变量进行 JSON 编码
$arr2=[
['id'=>'001','name'=>'adnjk','sex'=>'男'],
['id'=>'002','name'=>'wexk','sex'=>'女'],
['id'=>'003','name'=>'pohjk','sex'=>'女'],
];
echo JSON_encode($arr2);
页面访问为:
[{"id":"001","name":"adnjk","sex":"\u7537"},{"id":"002","name":"wexk","sex":"\u5973"},{"id":"003","name":"pohjk","sex":"\u5973"}]
**注意:**在HTML页面编写中显示的PHP的JSON_encode的转换内容为字符串。将PHP中的字符串转换为对象可在HTML中使用JSON.parse().
PHP连接数据库
mysqli
我们可以通过mysqli拓展库来实现PHP连接数据库,对数据库进行增删改查。
首先,新建一个PHP文件,输入phpinfo(),检查确认是否支持mysqli扩展。
在浏览器中访问PHP文件,Ctrl+f在搜索框中输入mysqli,查看是否支持
对数据库增删改
<?php
$host='localhost';
$user='root';
$pass='111111';
$con=mysqli_connect($host,$user,$pass);
mysqli_select_db($con,'text');
mysqli_set_charset($con,'utf8');
$sql='update yg set name="哈哈" where name="不仅仅"';
$res=mysqli_query($con,$sql);
var_dump($res);
mysqli_close($con);
对数据库查询
mysqli_fetch_assoc()
mysqli_fetch_assoc()方法是从数据库中获取一行数据的方法,返回值是字段名和值组成的关联数组。
<?php
$host='localhost';
$user='root';
$pass='111111';
$dbname='text';
$con=new mysqli($host,$user,$pass,$dbname);mysqli_set_charset($con,'utf8');
if($con->connect_error){
die('数据库连接失败'.$con->connect_error);
}
$sql='select*from yg';
$res=mysqli_query($con,$sql);
$arr=mysqli_fetch_assoc($res);
echo '<pre>';
print_r($arr);
echo '</pre>';
mysqli_close($con);
添加表格案例
<?php
$host='localhost';
$user='root';
$pass='111111';
$dbname='text';
$con=new mysqli($host,$user,$pass,$dbname);
mysqli_set_charset($con,'utf8');
if($con->connect_error){
die('数据库连接失败');
};
$sql='select*from yg';
$res=mysqli_query($con,$sql);
$arr=[];
while($row=mysqli_fetch_assoc($res)){
$arr[]=$row;
};
// var_dump($arr);
mysqli_close($con);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table>
<thead>
<tr>
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
</tr>
</thead>
<tbody>
<?php foreach($arr as $key=>$value){?>
<tr>
<td>
<?php echo $value['id']?>
</td>
<td>
<?php echo $value['name']?>
</td>
<td>
<?php echo $value['remark']?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
正则表达式
http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
作用:
- 注册页面时判断用户输入的内容是否符合验证规则
- 从整体字符串中看是否包含指定的字符串
- 找到符合规则的字符串进行替换
语法
$reg='/自定义的规则/';
元字符
元字符 | 说明 |
---|
a-z | 英文小写字母 | A-Z | 英文大写字母 | 0-9 | 数字 | \r \n \t | 非打印字符 | \d | 数字,相对于0-9 | \D | \d取反 | \w | 字母数字下划线 | \W | \w取反 | \s | 空白字符 | \S | 非空白字符 | [] | 任意匹配[]中单个字符 | . | 匹配任意字符(换行符除外) | {n} | 匹配n次 | {n,} | 匹配至少n次 | {n,m} | 至少n次,最多m次 | * | 匹配0个或多个,相对于{0,} | + | 匹配1个或多个,相对于{1,} | ? | 匹配0个或1个,相对于{0,1} | ^ | 1.匹配正则开头 2.放在[^],内容取反 | $ | 匹配正则结尾 | | | 匹配|两侧任选其一 | () | 1.分组 2.子存储 |
验证方法
preg_match()
preg_match(
r
e
g
,
reg,
reg,str,[$arr]);只要找到一次符合正则表达式的结果就终止了,不会再往下匹配.
- $reg自定义的正则表达式
- $str要查询的字符串
- $arr匹配的结果
$str='haha world amy';
$reg='/a/';
$res=preg_match($reg,$str);
var_dump($res);
preg_match_all()
preg_match_all(
r
e
g
,
reg,
reg,str,[$arr]);匹配一次成功以后不会终止,会一直匹配到完
$str='haha world amy';
$reg='/a/';
$res=preg_match_all($reg,$str);
var_dump($res);
preg_replace()
$str='hello I"m jack';
$reg='/jack/';
$res=preg_replace($reg,'maliy',$str);
echo $res;
案例:
$reg1='/^[a-zA-Z0-9_-\x{4e00}-\x{9fa5}]{4,16}$/u';
$reg2='/^\w{6,16}$/';
$reg3='/^1(3[0-9]|4[5,7]|5[0,1,2,3,5,6,7,8,9]|6[2,5,6,7]|7[0,1,7,8]|8[0-9]|9[1,8,9])\d{8}$/';
$reg4='/^\d{15}$)|(^\d{17}([0-9]|X)$/';
库函数
库函数->内置函数:数学函数、字符串函数、数组函数、目录函数、文件系统函数、时间函数、错误处理函数。
数字函数
函数名 | 语法 | 说明 |
---|
rand | rand(min,max) | 返回一个随机整数 | abs | abs(mixe) | 返回数字的绝对值 | min | min(array) | 返回最小值 | max | max(array) | 返回最大值 | round | round(float) | 四舍五入 | floor | floor(float) | 舍去小数部分取整 | ceil | ceil(float) | 小数部分非零返回整数部分就加1 | sqrt | sqrt(float) | 返回平方根 |
字符串函数
函数 | 功能 |
---|
trim() | 去除字符串首尾空白等特殊符号或指定字符序列 | strtolower() | 转换为小写 | strtoupper() | 转换为大写 | strip_tags() | 函数剥去HTML、XML以及PHP的标签 | md5() | 字符串加密 | strlen() | 字节长度 | substr() | 字符串截取函数 | str_replace() | 字符串替换函数 | str_repeat() | 重复一个字符串 | explode(符号,字符串) | 字符串->数组 | implode(符号,数组) | 数组->字符串 |
/ 字符串函数
$str1='say ';
$str2='SAY';
$str3='say';
$str4='say hello world';
$str5='hi world I"m jack';
$str5=explode(' ',$str5);
$arr1=['hi','world','I"m','jack'];
$str6=implode(' ',$arr1);
数组函数
函数 | 功能 |
---|
array_values() | 数组中所有的值放入一个新的索引数组,并返回 | array_keys() | 数组中所有的键放入一个新的索引数组,并返回 | array_revers() | 颠倒数组顺序 | in_array(元素,数组) | 检查数组中是否存在某个值 | count() | 计算个数 | array_unshift() | 在数组开头插入一个元素 | array_push() | 在数组尾部插入一个元素 | array_unique() | 移除数组中的重复值 | array_pop() | 删除数组最后一个 | array_shift() | 删除数组第一个 | array_splice(数组、索引、数量) | 删除指定数组 | sort() | 排序(升序) | rsort() | 排序(降序) | array_merge() | 合并一个或多个数组 | array_rand() | 数组中随机抽取一个 | range(起始数,终止数) | 自动生成一个起始数到终止数的新数组 | shuffle() | 打乱数组的顺序 |
$arr2=array(
'id'=>'01',
'name'=>'hello',
'class'=>'03'
);
$res1=array_keys($arr2);
$res2=array_values($arr2);
$res3=array_reverse($arr2);
$arr3=['tom','jack','lily'];
$res4=in_array('tom',$arr3);
$arr4=[10,20,30,40];
$arr5=['a','b','c','d'];
array_splice($arr5,0,2);
print_r($arr5);
$one=['a','b','c','d'];
$two=['e','f','y'];
$con=array_merge($one,$two);
print_r($con);
$res = range('a', 'z');
echo '<pre>';
print_r($res);
echo '</pre>';
JSON
函数 | 说明 |
---|
json_encode(数组) | 转为字符串格式 | json_decode(字符串,参数) | true:返回数组;false:返回对象 |
引入文件
在页面头部或其他部相同的情况下,引入文件,只编写不同功能部分。
include:引入文件不存在时会报致命错误,后面代码不执行
require:引入文件不存在时会报警告错误,后面代码继续执行
include_once:若重复引用只执行一次
require_once:若重复引用只执行一次
语法:
include '文件地址';
文件编程
|