| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> PHP基础知识复习 -> 正文阅读 |
|
[PHP知识库]PHP基础知识复习 |
一、HTML基础知识1、总体框架
2、表格格式
3、表单标记
补充:滚动文本框 <textarea? 属性=“值”> 文本框里的初始内容 </textarea> eg: <textarea? name=ta rows 8 cols=20> 这是文本框的初始内容 </textarea> 二、PHP基础语法1.PHP书写风格<?php..........?>或者<?....?> 2.变量命名规则由字母或下划线“_”开头,后跟任意数量的字母、数字或者下划线。变根据量在初始化时,使用“=”给变量赋值,变量类型会根据其赋值自动改变。 3.预定义变量$_COOKIE。它是由HTTP Cookies传递的变量组成的数组。 $_GET。它是由HTTP GET 方法传递的变量组成的数组。 $_POST。它是由HTTP POST方法传递的变量组成的数组。 $_FILES。它是由HTTP POST方法传递的已上传文件项目组成的数组。 $_REQUEST。它是所有用户输入的变量数组,包括$_GET、$_POST、$_COOKIE所包含的输入内容。 $_SESSION。包含当前脚本中会话变量的数组。 3.运算符算术运算符? ? ? ? ? ? ?+、-、*、/、取余%、取反- 赋值运算符? ? ? ? ? ? ? =、+=、-=、*=、/= 位运算符? ? ? ? ? ? ? ? ?&、|、^ 比较运算符? ? ? ? ? ? ? ==、!=、<、>、<=、>= 错误控制运算符? ? ? ?@ 递增、递减运算符? ? ++、-- 逻辑运算符? ? ? ? ? ? ? ?&&、||、! 字符串运算符? ? ? ? ? ? “.” 4.流程控制语句分支语句:if、switch 循环语句:while、do_while、for、foreach 转移语句:break、continue、return if语句的定义形式: if(表达式) ? {语句块} else {语句块2} switch语句: switch(表达式){ case? 常量1:语句1;[break;] case? 常量2:语句2;[break;] case? 常量3:语句3;[break;] ...... [default:语句n;] } eg:switch($n) {?? ? ? ? ? ? case1:echo $n;break; ? ? ? ? ? case2:echo $n;break; } while语句: while(A)? ? ? ? ?//循环条件 {? ? ? ? ? ?B;? ? ? ?//循环条件 } 当A为true时,执行{}中的语句,否则终止循环。 eg:用while语句实现求1~10之和的语句如下: $i=1,$n=10,$sum=0; while($i<=$n){ $sum = $sum + $i; $i++; } do-while语句: do{ ? ? ? ? ?A;? ? ? ? ? //循环体 }while (B);? ? ? //循环条件 for语句: for(表达式1;表达式2;表达式3) ? ? ? {语句块} eg:for($n=0,$n<10;$n++) { ? ? if($n==$m) ? ? ? ?continue; ? ? ? ?echo $n; } 5.Break语句
6.Continue语句
7.使用continue和break的差别:<? php $m=5; for($n=0;$n<10;$n++) { if($n==$m) ? ? ?continue;? ? ?//break;? ?? ? ? ?echo $n;? ? ? //如果上面是continue,结果为012346789。如果上面是break,结果为01234 } 三、数据处理1.数组的创建和初始化创建数组可以使用array()函数,语法格式如下: ? ? array array([$Keys=>]$values,...) ? ? ?说明:如果省略了键名,会自动产生从0开始的整数作为键名,如果只对某个给出的值没有指定键名,则取该值的键名为前面最大的整数键名加1。 eg:
2.数组的使用 要使用数组中某个值,可以使用$array["键名"]的形式。 eg:
3.range()函数使用 range()函数自动建立一个值在指定范围的数组 语法格式如下: array range(mixed $low,mixed $high[,number $step]) $low 为数组开始元素的值,$high为数组结束元素的值。 $step是步长值,默认为1 eg:
4.数组的遍历和输出
? ? ?eg:
语法格式如下: foreach(array_expression as $value) ? ? {echo $value;}? ? ? ? ? //代码段 遍历给定的array_expression数组。每次循环中,当前单元的值被赋给变量$value并且数组内部的指针向前移一步。 foreach(array_expression as $key=>$value) ? ? {echo $key,$value;}? //代码段? 做同样的事,只是当前单元的键名也会在每次循环中被赋值给变量$key。 eg:
5.数组的排序 升序排序: sort()函数:按照数组值从低到高重新索引。语法格式如下: bool sort(array $array [,int $sort_flags]) $sort_flags的值可以影响排序的行为,$sort_flags可以取下4个值 SORT_REGULAR:正常比较单元(不改变类型),这是默认值 SORT_NUMERIC:单元 被作为数字来比较。 SORT_STRING:单元被作为字符串来比较 SORT_LOCALE_STRING:根据当前的区域设置把单元当作字符串比较 eg: 说明:sort()函数不仅对数组进行排序,同时删除了原来的键名,并重新分配自动索引的键名
asort()函数:也可以对数组的值进行升序排序,但使用asort()函数排序后的数组还保持键名与值之间的关联。 eg:
ksort()函数:用于对数组的键名进行排序,排序后键名和值之间的关联不改变。 eg:
降序排序: rsort()函数:按数组中的值降序排序 arsort()函数:按数组中的值降序排序,不改变键名和值之间的关联 krsort()函数:将数组中的键名按降序排序 4.数组元素个数计算 count()函数: sizeof()函数: array_count_values()函数:计算数组中一个值出现的次数。语法格式如下: array? array_count_values(array $input) 返回一个数组,该数组用$input数组中的值作为键名,该值在$input数组中出现的次数作为值。 eg:
5.计算字符串的长度 strlen()函数:可以计算字符串的长度。语法格式: int strlen(string? $string) 注意:该函数返回字符串的长度,1个英文字母长度为1个字符,1个汉字长度为2个字符,字符串中的空格也算一个字符。 eg:
6.字符串的比较
strcmp()、strcasecmp()、strncmp()和strncasecmp()。语法格式如下: int strcmp(string $str1 , string $str2) int strcasecmp(string $str1 , string $str2) int strncmp(string $str1 , string $str2 , int $len) int strncasecmp(string $str1 , string $str2 , int $len) ?????? 说明:这4个函数都用于比较字符串的大小,如果$str1比$str2大,则它们都返回1;如果$str1比$str2小,则返回小于-1;如果两者相等,则返回0。 ?????? strcmp()函数用于区分大小写的字符串比较;strcasecmp()函数用于不区分大小写的比较;strncmp()和strncasecmp()函数用于比较字符串的一部分。例如: <?php echo strcmp(“aBcd”,“abde”);???????????????????? ? //输出-1, 比较了"B"和"b","B"<"b" echo strcasecmp("abcd","aBde");?????? ? //输出-1, 比较了"c"和"d","c"<"d" echo strncmp("abcd","aBcd",3);? ?? ???//输出1,? 比较了"abc"和"aBc" echo strncasecmp("abcdd","aBcde",3);? //输出0, 比较了"abc"和"aBc" ?> 注:字符串的比较要求能根据函数表达式,知道函数输出结果就可。 7.字符串替换 常用str_replace()函数,语法格式如下: mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) 说明:str_replace()函数使用新的字符串$replace替换字符串$subject中的$search字符串。$count是可选参数,表示要执行的替换操作的次数。例如: <?php $str=“我是学生";? $str=str_replace(“学生”,“老师”,$str) ;???????????????????????????????????????????????????????????? //输出“我是老师" echo $str;?????????????????????????? ?> 8.字符串与数组互相转换 ?字符串转化为数组 explode()函数可以用指定的字符串分割为一个数组。语法格式如下: array explode(string $separator , string $string [, int $limit ]) 说明:此函数返回由字符串$string组成的数组,每个元素都是$string的一个子串,它们被字符串$separator作为边界点分割出来。例如: <?php $str="使用 空格 分割 字符串"; ?$array=explode(" ", $str);? print_r($array); //输出Array ( [0] => 使用 [1] => 空格 [2] => 分割 [3] => 字符串 ) ? ?> 数组转化为字符串 implode()函数可以将数组中的字符串连接成一个字符串。语法格式如下: string implode(string $glue , array $pieces) $pieces是被连接成字符串的数组,$glue是连接字符串的连接符。例如: <?php $array=array("hello","how","are","you"); $str=implode(",",$array);???? //使用逗号作为连接符 echo $str;???????????? ????????????? //输出? "hello,how,are,you" ?>????????????????????????????????????? //implode()函数还有一个别名,即join()函数。 四、PHP高级编程
function function_name([$parameter[, …]]) ????????????? {????? //函数代码段?????? } ?????? 关键字为function。function_name是用户自定义的函数名,函数名和变量命名规则相同,且不区分大小写,需要注意的是,函数名不能与系统函数或用户已经定义的函数重名。
<?php function func($a,$b) {????? if($a==$b)??????????? echo "a=b"; ?????? else if($a>$b)?????? echo "a>b"; ?????? else????????????????????? echo "a<b"; }??? ?>? ????????????? 注:要求会定义一个简单函数。
?????? 中断函数执行并不是return语句最常用的功能,许多函数使用return语句返回一个值来与调用它们的代码进行交互。
封装、继承、多态
class classname {???????????? [ var $property[= value];…] ????????????? ?????? [function functionname($args) ????????????? ????????????? {????? //代码??? } ????????????? ?????? ] }
class a {????? var $a; ?????? function fun($b) ?????? {????? echo "hello world";????? }? //不能将类的定义放到多个文件或多个PHP块中! } 注:此处要求会定义一个简单类。
?????? 在声明一个类后,类只存在于文件中,程序不能直接调用。需要创建一个对象后程序才能使用,创建一个类对象的过程叫做类的实例化。类的实例化使用new关键字,关键字后面需要指定实例化的类名。
在对象被创建之后,可以在类的外部对该对象的属性和方法进行访问,访问的方法是在对象后面使用“->”符号加上要访问的属性和方法。 例如:创建了对象“$obj”,类中有“$stunumber”,要访问该属性可以使用: “$obj->stunumber”,注意属性的前面没有“$”。
注:此处能将访问权限描述清楚 。
静态属性和方法的声明用关键字static,访问静态属性和方法时需要使用到范围解析符“::”,格式如下: classname::$attribute;? ??????? ???//访问静态属性 classname::Cfunction([$args,…])??? //访问静态方法
它是一种特殊的类,使用关键字abstract来定义,不能被实例化。一个抽象类中至少包含一个抽象方法,抽象方法也是由abstract关键字来定义。抽象方法只提供了方法的声明,不提供方法的具体实现。例如: abstract?? function func($name, $number); 五、构建PHP互动网页
以GET方法提交表单到某个页面时,该页面的URL中包含了表单数据的值,通过获取URL中的参数值即可获得需要的数据。 例如:?? http://localhost/EX6_1_Ppage.php?XH=081101&XM=%C2%DE%C0%FB&SEX=%C4%D0&Birthday=1990-01-09&ZY=%BC%C6%CB%E3%BB%FA&BZ=%B2%E2%CA%D4&BUTTON1=%CC%E1%BD%BB
1)使用header()函数:只要在header()函数的参数中使用“Location: xxx”即可实现页面跳转功能。例如: ?????????? header("Location: 百度一下,你就知道"); 2)通过表单的action属性:将<form>标记的action属性设置为要跳转到的页面,提交表单后就跳转到该页面。例如: <form method="post" action="index.php"></form> 3)使用超链接:使用HTML的超链接标记<a>实现跳转页面的功能。例如: <?php echo “<a href=http://www.qq.com “>腾讯</a>";? ??> 4)使用按钮:需要在按钮控件的onclick方法中设置执行的代码。例如: <?php echo '<input type="button" name="bt" value="页面跳转” οnclick=window.location=“index.php">'; ?> 5)使用<meta>标记:例如: <meta http-equiv="refresh" content="5;url=http://www.baidu.com”> 说明:以上代码的作用是5秒之后跳转到百度页面。content属性中数字5表示5s之后跳转。 6)使用客户端脚本:PHP中使用JavaScript跳转到index.php页面的代码如下: <?php echo "<script>if(confirm('确认跳转页面?')) "; echo "location='index.php'</script>"; ?> ??????? 注:此处要求会3种URL的页面跳转方法。
setcookie("user", "administrator");?????????????????? //设置Cookie的名称和值 setcookie("password", "123456", time()+3600); //设置一个Cookie,1小时后失效 setcookie("name", "david", time()+3600, "\php5" ); //创建只在php5目录下有效的Cookie? ?> 注:要求会看cookie的有效期即可。 六、MySQL数据库基础
INSERT? [INTO] ?tbl_name? [(col_name,...)]? VALUES? ({expr | DEFAULT},...),(...),... tbl_name。被操作的表名。 col_name。需要插入数据的列名。如果要给全部列插入数据,列名可以省略。 VALUES子句。包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。 例:向PXSCJ数据库的表XSB(表中列包括学号、姓名、性别、出生时间、专业、总学分、备注)中插入如下的一行:081101,王林,1,1990-02-10,计算机,50,NULL 使用下列语句: USE PXSCJ;INSERT INTO XSB? VALUES('081101', '王林' , 1, '1990-02-10', '计算机', 50, NULL);
UPDATE tbl_name? SET col_name1=expr1 [, col_name2=expr2 ...]? [WHERE where_definition] ??? SET子句。根据WHERE子句中指定的条件对符合条件的数据行进行修改 WHERE子句。设定条件确定要修改哪些行,where_definition用于指定条件。 例1:将XSB表中的所有学生的总学分增加10。 USE PXSCJ;UPDATE XSB? SET 总学分 = 总学分+10; 例2:将姓名为“罗林琳”的同学的专业改为“软件工程”,备注改为“提前修完学分”,学号改为“081261”。 USE PXSCJ;UPDATE XSB? SET 专业 = '软件工程', 备注 = '提前修完学分', 学号 = '081261' ?WHERE 姓名 = '罗林琳';
DELETE FROM tbl_name? [WHERE where_definition] 例:数据库mydata中有一个表table1,table1中有如下数据: ???????????????????? ?? 姓名??? 年龄??? 职业 ???????????????????? ?? 张三???? 42???? 教师 ???????????????????? ?? 李四???? 28???? 工人 要删除张三的信息可使用如下语句: USE mydata;DELETE FROM table1 WHERE 姓名='张三';
???????????????????? SELECT?????????????????????????????? [GROUP BY {col_name | expr | position} [ASC | DESC], ...]??? ?????????????????????????? [ORDER BY {col_name | expr | position} [ASC | DESC] , ...]?????????
???????????????????? 例:将PXSCJ数据库中XSB表各专业输出。 SELECT 专业 FROM XSB GROUP BY 专业;
??????????? 例1:将通信工程专业的学生按出生时间先后排序。 SELECT * ?FROM XSB? WHERE 专业= '通信工程' ?ORDER BY 出生时间; ??????????? 例2:将计算机专业学生的“计算机基础”课程成绩按降序排列。 ??????????????????????????? SELECT 姓名, 课程名, 成绩 ??????????????????????????? FROM XSB, KCB, CJB WHERE? XSB.学号= CJB.学号 AND CJB.课程号= KCB.课程号 AND? 课程名= '计算机基础' AND 专业= '计算机' ORDER BY 成绩 DESC; 第8章:PHP操作数据库
使用mysqli_connect()函数。语法格式如下: resource mysql_connect([string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]]) $server? :服务器名 ?$username:用户名 ?$password:密码 例:$conn=mysqli_connect(‘localhost’,‘root’,‘’);
使用mysqli_select_db()函数。语法格式如下: bool mysqli_select_db(resource $ link_identifier ,string $database_name) $lin_identifier为一个连接标志符,使用之前已经打开的连接,$database_name参数为要选择的数据库名。本函数运行成功返回TRUE,否则返回FALSE。 例:mysqli_select_db($conn,"new_wen") or die("数据库选择失败");
使用mysqli_query()函数。语法格式如下: resource mysqli_query (resource $link_identifier , string $query ) $lin_identifier为一个连接标志符,使用之前已经打开的连接,$query参数为要选择的数据库名。 例:$sql="select * from XSB";? $result=mysqli_query($conn,$sql);
使用mysqli_fetch_row()函数可以从返回的结果集中逐行获取记录。语法格式如下: ?array mysqli_fetch_row(resource $result) 完整事例: <?php $conn=mysqli_connect('localhost','root','')?or die('数据库连接失败'); mysqli_select_db($conn ,'PXSCJ') or die('选择数据库失败'); mysqli_query($conn,"SET NAMES utf-8"); $sql="select * from XSB where 学号= '081101'"; $result=mysqli_query($conn,$sql); if($row=mysqli_fetch_row($result))? print_r($row); //输出:Array ([0] => 081101 [1] => 王林 [2] => 1 [3] => 1990-02-10 [4] => 计算机 [5] => 50 [6] =>)
mysqli_fetch_assoc()函数可以获取结果集,与mysqli_fetch_row()函数的唯一区别是通过字段名称来获取数据,其声明方式如下: ??? array mysqli_fetch_assoc(resource $result)
使用字段名作为键名存储在数组中。
从结果集中取出一行数据并保存为对象,使用字段名访问对象的属性。 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 15:04:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |