没有公司可以做网站吗,深圳做网站的网,创业平台是什么意思,排名优化公司哪家好web基础入门和php语言基础入门 二 MySQL入门-续MySQL之数据查询操作MySQL其他知识点 php语言基础入门认识PHPPHP的工作流程安装PHP环境认识一个PHP程序PHP基础知识点进入正题 PHP与WEB交互PHP与MySQL交互总结 MySQL入门-续
MySQL之数据查询操作
WHERE 子句#xff0c;条件限… web基础入门和php语言基础入门 二 MySQL入门-续MySQL之数据查询操作MySQL其他知识点 php语言基础入门认识PHPPHP的工作流程安装PHP环境认识一个PHP程序PHP基础知识点进入正题 PHP与WEB交互PHP与MySQL交互总结 MySQL入门-续
MySQL之数据查询操作
WHERE 子句条件限制语句 SELECT *或其他 FROM 数据表(可以是多个) WHERE 需要满足的条件 SELECT NAME FROM VULN WHERE NAMEecoloy; SELECT * FROM VULN WHERE NAMEecoloy;
首先我先插入了几条数据。 然后我进行了限制查询从 vuln 数据表中的 name 字段下筛选出来 NAMEecoloy 数据。 第二句话是从 vuln 数据表中的所有字段下筛选出 NAMEecoloy 的数据。 对数据还可以进行 AND 和 OR 限制。 AND 代表两个条件都要满足。 OR 代表满足其中一个条件即可。
SELECT * FROM VULN WHERE NAMEecoloy and ID5; SELECT * FROM VULN WHERE NAMEecoloy OR ID5; 2、ORDER BY 子句排序语句 SELECT *或其他 FROM 数据表(可以是多个) ORDER BY 字段 ASC/DESC; ASC 是升序排序 DESC 是降序排序。 我们可以使用数字来进行判断列长度比如 SELECT * FROM VULN ORDER BY 4; 3、UNION 子句联合查询 所谓联合查询就是查询不同的两个表将要查询的信息合并显示。 联合查询有两个子句 UNION 子句 查询后不显示重复数据 UNION ALL 子句 查询后会显示重复数据 SELECT *或其他 FROM 数据表1 UNION SELECT *或其他 FROM 数据表2 select name,desname from vuln union select name,password from users;
MySQL其他知识点
1、MySQL的注释 #从这开始到后面 --从这开始到后面 /*这全是注释*/ 2、常见的内置函数
database() : 显示当前数据库名称
current_user 显示当前用户
version() : 显示当前数据库版本
load_file() 显示一个文件内容
into outfile 写入文件学习一下 load_file() 与 into outfile 的使用
php语言基础入门
认识PHP PHPHypertext Preprocessor 超文本预处理语言是一种通用开源脚本语言。主要用于WEB开发领域其语法吸收了C语言JAVA和Perl的特点。PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。 上面这段话来自较官方说法其实对于PHP来说就是常用在WEB领域的开源脚本语言作为中间人的角色处理WEB数据或是处理请求数据或是返回数据。比如说我们常见的登录过程输入账号密码点击提交后我们所请求的数据是先经过PHP来处理然后再去数据库进行操作查询处理查询处理过后再返回给PHPPHP再经过处理后返回到前端页面即呈现在我们眼前的浏览器页面。简言之PHP在WEB中充当中间人的角色它主要处理WEB数据。 其他在一整套WEB中要有操作系统WEB服务器后端处理语言以及数据库。操作系统就是我们常见的WindowsLinuxUbuntu等。WEB服务器常见的是ApacheTomcatWindows Server等。后端处理语言有PHPJSPASPPython等数据库有MySQLOracleSQL server等。 PHP的工作流程
用语言简述了PHP的工作流程加深印象不妨看看下面这张图 上面这张图是我们浏览网页基本工作流程我将其分为了六个步骤 第一步我们上网浏览页面通过HTTP协议向Web服务器请求数据。 第二步我拿的Apache举例它接收到数据后转交给PHP来处理这些数据。 第三步PHP与数据库交互比如Mysql通过查询或其他操作访问数据 第四步数据库将访问操作的数据返回给PHP让它再去处理。 第五步PHP再去处理这些数据整理成我们网页能看到的样式然后返回给Web服务器。 第六步Web服务器接收到了PHP整理好的数据后将其打包成HTTP协议返回给我们。
安装PHP环境
PHP环境安装 1、Windows下安装 在Windows下安装PHP环境的话我们首选PHPstudy将PHP所需环境一键部署省时省力。关于版本我们下载最新版本。即 phpStudy v8.0版本从官网下载一路下一步即可。
官方网址
https://www.xp.cn/download.htmlLinux下安装 较比于Windows下安装Linux下安装PHP还需要安装所需的WEB服务器数据库想对于麻烦一些。但却可以从搭建中清晰了解WEB基本架构是怎样的的对后期学习是有 一定帮助的。
Ubuntu下安装
https://www.cnblogs.com/xpwi/p/9818751.html
or
bing百度搜索注意在Ubuntu下或是在Centos下或是其他Linux系统版本下搭建是有区别的。可以根据自己具体需求查阅相关资料。 说明
关于搭建PHP环境是基于在服务器上单一的PHP脚本是运行不了的一定要放在服务器上。关于PHP程序编写大家可以下载phpstorm专业软件编写PHP以及调试PHP。对于练习来说我使用的是Visual Studio Code 文本编辑器编写好程序后放入到服务器根目录打开对应路径即可。
认识一个PHP程序
现在我们对PHP有了大致的了解也搭建完了PHP所需的环境。 那么我们不妨来个实际例子对它再进一步的认识。 然后我们再去学习 PHP基础知识点 。 大家先去这个地方下载我们第一个PHP脚本 https://github.com/Kevil-hui/BestShell 接下来将脚本复制粘贴到网站根目录中
我们打开浏览器输入路径打开这个脚本 我们可以看到这个脚本执行了很多内容都是一些很敏感的内容有些朋友肯定已经知道了这个脚本的作用了以及它们的特有的名称了有些敏感大家知道就好。这就是一个PHP脚本它所执行的功能大家可以实际去操作一下是不是很有趣。 为什么先看个这个例子为了激发大家的兴趣看懂看不懂先放一边后面学习了基础语法都会懂得。兴趣驱使学习入门是挺枯燥 注意 我们在输入路径时后面端口我设置的为 7089 大家可以根据自己需求设置 注意 请大家不要使用该脚本当任何Webshell请勿用于非法行为本例子目的为了学习了解PHP请大家遵守网络安全法。
PHP基础知识点
现在进入PHP基础知识点环节这个部分稍微有些多都是基本知识点有其他语言的基础的朋友大致看一下就会学习很多语言语法都是如此相似。没有学过其他语言的朋友们看完这些基础点后建议大家根据自己能力拓展学习掌握两三门语言是非常有必要的。
进入正题
变量与其数据类型 变量在编程语言中是最基础的概念其意思为一种可变化的量。可根据你所需将其赋值的量。 这个变化就是根据你的需求而变化的。
变量使用规则
1、变量必须以 $ 美元符号开始
2、变量不能使用数字字符开头
3、变量开头可以下划线 _ 开始
4、变量名不能是PHP常用的关键字
5、在PHP中对变量大小写敏感$a 与 $A 是两个变量举个例子
?php
$a 1;
$b 7089bAt;
echo $a;
echo br;
echo $b;
echo br;
$c 5;
$d 6;
$e $c $d;
echo $e;
?输出结果 解读 在上面代码中我们可以看到使用了 等于号进行赋值是的几乎在常见的语言中都是使用等号进行赋值即把右面的数据’给’右面这时 $a 不在孤独了它有了整型 1 的陪伴而 $b 也有了字符串 7089bAt 的陪伴还有下面的那些变量。在下面我用了个最最最简单的计算来让大家了解一些变量最基本的作用。在程序中可以对不同类型变量进行不同的操作下面我们会了解到变量有哪些数据类型。 在进行变量操作时已声明的变量会被计算机内存分配一块区域存放你所赋的值即$a 在内存中有一小块区域其里面存放着 1 这个整型。以后你再去使用变量 $a时你知道它是个整型 1 所以你可以根据你的需求来使用它。当然这个值是可以根据你的需求变化的而且$a 这个变量只在本代码段里的值是 1 。
变量的数据类型 在上面我提到了整型字符串其实这是变量的数据类型。在PHP中的变量数据类型有这些 四种标量类型
布尔型boolen
整型integer
浮点型float
字符串string两种复合类型
数组array
对象object两种特殊类型
资源resource
Null详细介绍 对于下面这四种常用的标量数据类型大家需要知道它是什么怎么用即可。
布尔型boolen 四种标量类型之一。它只有两个值真True和假False。在PHP中可以将任何类型的值都转换为真或假。比如整型数值零0为假浮点型0.0为假空白字符串“”为假等等。 举个列子
?php
$a true;
if($a true){
echo h1墨羽/h1;
}
?解读 布尔类型常在条件语句中使用具体条件语句使用下面会说到。我们先解读下上面这 句话什么意思 首先将 $a 赋值为 true 接下来在条件语句中的条件判断处进行判断即 $a true ( 两个等于号是判断的意思 一个等于号是赋值的意思不要混淆。我们已经将 $a 赋值为 true 了所以说 $a true 条件是成立的既然这样下面就会执行 echo h1墨羽/h1; 这句话。所以根据输出结果看就是想浏览器输出了墨羽这几个字。 上面是最基本的条件语句下面还要学习其他条件语句。 是想浏览器输出了墨羽这几个字。 上面是最基本的条件语句下面还要学习其他条件语句。
整型integer 四种标量类型之一。其数据类型只能为整数 - 正整数或负整数。 具体数值会有一个区间具体可看 https://www.php.net/manual/zh/language.types.integer.php 比如 $a3.14; $b-0.12; $c70.89; 这些都是浮点型、字符串string 四种标量类型之一。字符串即连续的字符序列可以是数字字母或符号。 定义字符串的三种方式单引号’ $a moyv;双引号 $b moyv;定界符 定界符用于定义格式化的大文本其输出格式会按照你在定界符中所敲打的形式输出。 使用方法
str
格式化文本
str举个列子
test
墨羽
我是moyv
是兄弟就来砍我。
test;解读 其中test为自定义的标识符结束的标识符必须在新的一行开头并且不要忘记 ; 。 注意 单引号与双引号定义字符串区别 在单双引号中包含变量名时双引号会将其变量的值输出而单引号只会把它当做普通的字符输出。 在PHP中有个函数即 - var_dump(变量名)可以查看数据类型。 具体使用如图
常量 常量在脚本中是初始化的值不会变的值。一般在程序中定义了常量之后在整个程序中这个值都是固定有效的。 自定义常量 关键字 - define()
define(string constant_name, mixed value, case_sensitivetrue)
参数(string constant_name)必选参数常量名称。
参数(mixed value)必选参数常量的值。
参数(case_sensitivetrue)可选参数指定是否大小写敏感true为不敏感。获取常量值 关键字 - constant()defined()
1、constant(string constant_name)
参数(string constant_name)常量的名称
指定获取某常量如果成功返回正常值如果失败则提示错误信息(常量没有被定义)
2、defined(string constant_name)
参数(string constant_name)常量的名称
指定获取某常量如果成功返回true如果失败返回false举个列子 这张图片截图是 认识一个PHP程序 的那个脚本开头大家来理解一下常量变量。记 住这个格式具体情况下再应用就会更加熟悉了。 备注 什么是关键字是程序中保留字每个字符都有特定的含义在处理程序时它只认得这些关键字也会根据关键字处理相应功能。
运算符与表达式 运算符 运算符是对常量变量或数据进行计算的符号。比如前面我们最开始了解变量时使用的 是赋值运算符还有 是比较运算符除了这些还有很多运算符有不同的作用。 在PHP中有以下运算符
算术运算符
字符串运算符
赋值运算符
比较运算符
条件运算符
递增或递减运算符
位运算符
逻辑运算符下面我简单讲讲几个运算符 算术运算符就是常见的 加减乘除取余 所使用的的符号为 -*/% 字符串运算符就是对字符串进行基本操作比如使用英文句号.是将两个或多个字符串连接起来形成一个新的字符串。 比较运算符就是对变量或表达式的值进行大小真假的比较根据其比较返回true或者false。 逻辑运算符 这个在程序中是比较中要的一种运算符。 记住下面条件为真的情况在后面自己写程序时熟练操作几遍就会对这个简单的概念有很深刻的理解
或and$a $b逻辑与当两者都为真时结果为真
||或or($a || $b)逻辑或但两者其中一者为真的时候结果为真
!逻辑非!$a是个英文的感叹号当$a为假时结果为真
xor逻辑异或$a xor $b当$a$b为一真一假时结果为真关于逻辑运算符的使用我们在下面理解了条件语句后配合实例加深理解。 更多运算符符号以及使用方法还有他们的运算优先级大家可以看这篇文章 https://www.runoob.com/php/php-operators.html
表达式 表达式是PHP语言的基本元素它是将运算符和操作数连接起来的式子成为表达式听起来很绕其实 $a7089 这个赋值操作就是最简单的表达式还有上面逻辑运算符两者比较也是表达式。 关于表达式多搭配用于条件语句循环语句。具体实例看下面。
条件判断语句 在上面多次提到条件语句以后在编写程序时我们以后常用到条件语句。而且会与一些表达式搭配使用关系相当密切。 那么什么是条件语句其实就是对一件事的判断根据判断结果做出一项选择。比如抛硬币如果正面朝上我亲你如果反面朝上你亲我。这就是一个简单的条件语句的判断。虽然很不要脸 -.- 具体在程序中使用是下面这样的。
条件表达式关键字 ifif…elseswitch…caseif语句 if语句是最简单的条件判断语句它判断一个条件如果条件成立就执行下面语句如果不成立则跳过这段程序执行下面程序。
举个例子
?php
$a1;
$b1;
if($a $b){
echo haha我们两是一对;
}
?这段if语句条件单一运行结果单一意思为如果两个变量相等就输出下面那句 话使用到了 两个等号也就是比较运算符。
if…else语句 if…else语句有了两个结果他判断一个条件如果条件成立就执行 if 下面的语句如果条件不成立的就执行 else 下面的语句
举个例子
?php
$a1;
$b2;
if($a $b){
echo haha我们两是一对;
}
else{
echo 可惜我们不是一对;
}
?这段 if…else 语句理解起来也非常容易针对一个条件进行判断成立与否返回其 中一个结果。要么他们两是一对要么不是一对。
if…else if…else多条件语句 多条件语句根据成立的条件不同来返回结果。下面用最经典例子来进行理解。 举个例子
?php
$chengji 99;
if($chengji 90){
echo 你真棒;
}
elseif($chengji 80){
echo 继续努力;
}
elseif($chengji 70){
echo 多多努力;
}
elseif($chengji 60){
echo 加油鸭;
}
else{
echo 小明同学你终于不及格了;
}
?这段代码大家运行以下修改不同数值来观察一下其中不同的结果。
switch…case语句 switch…case分支控制语句对于一个条件进行判断根据结果和case中的值对比如果相等就执行对应的语句。直到switch语句结束或遇见break。
举个例子
?php
$ta xiaoli;
switch($ta){
case xiaoli:
echo 小li人好;break;
case xiaozhang:
echo 小zhang个高;break;
case xiaowang:
echo 小wang白净;break;
case xiaozhao:
echo 小zhao腿长;break;
default:
echo $ta.同志是谁;break;
}
?这段代码是使用 switch…case 语句先设置一个变量其值如上然后使用该和case 下设定的值比较如果比较条件成功就会执行响应的语句如果设置了一个case没有的值就会执行 default 下的语句。 在这段代码中出现了个 break 它也是PHP中的关键字它的意思是跳出这次执行跳出switch语句。如果不使用 break 的话程序自动执行完剩下的代码然后退出。大家可以将 break 删除自行调试观察结果。
循环语句 了解完条件判断语句现在要接触循环语句。 所谓循环哲学点说某件事物周而复始的运动或变化。 在程序语言中的循环是个闭环从头开始到结尾然后再从头开始。比如说你围绕着操场跑步如果按照规定圆圈路线进行你必然会回到起点然后又从起点开始计算新的一圈。在程序中很多都是如此。 在PHP语言中有四种循环结构分别是 while循环 do...while循环 for循环 foreach循环 。
while循环 只需单一的条件如果条件成立就循环执行代码块 格式
while(条件){
要执行的代码;
}举个例子
?php
$a 0;
while($a 10){
echo 第.$a.次循环的数字是.$a.br;
$a;
}
?运行结果 解读 大家看运行结果可以看到代码运行了十一次。首先我给变量 $a 的值设置为了0接下来就是 while循环 部分它设定的条件为 $a 10 就是变量这个数字 小于或等于10 的时候停止循环既然一开始设定的变量为0肯定小于10那就就执行下面代码。大家看到里面有个 $a 这段简单的表达式它的意思是对变量 $a 进行 自加1 拓展开来就是 $a$a1 。这样的话变量一开始为0进入一次后加了1后就变为1然后继续进行第二次判断还是小于10那就就继续执行下面代码直到变量$a 自加到10的时候与条件相等此时就会终止循环。
for循环 给定指定条件按照规定执行代码块。 格式
for (初始值; 条件; 增量)
{
要执行的代码;
}举个例子
?php
for($a0;$a9;$a){
echo 第.$a.次循环的数字是.$a.br;
}
?运行结果 解读 大家可能发现了这个例子和 while循环 那个一样只不过换了 for循环 。我们可以对比一下发现其实在这两个循环中都有三个条件初始值循环条件以及变量的递增或递减方式。 for循环 只不过将这三个条件集合在了一个地方编写。但在实际应用 时还会多少有些出入根据实际情况再决定用哪个。 for循环 还可以嵌套循环在第一层循环下再加入一层循环。大家可以自己试试写个9*9乘法口诀。
foreach循环 只用于循环数组可遍历每个数组中的键值对。
格式
foreach ($array as $value)
{
要执行代码;
}举个例子
?php
$numarray(1234,12,34);
foreach ($num as $value)
{
echo $value . br;
}
?大家可以运行这段代码观察一下结果。 关于数组是数据类型中的复合类型。它能够在一个变量中存储一个或多个值并且能通过索引号访问对应的值。要注意的是数组索引号是从零(0)开始。零(0)就是第一位。 三种数组类型
索引数组 - 带有数字索引的数组
关联数组 - 带有指定键的数组
多维数组 - 包含一个或多个数组的数组声明数组关键字 - array()
索引数组
要注意的是索引数组索引号是从零(0)开始。零(0)就是第一位。
$a array(1,2,3);
关联数组
$numarray(one1,two2,three3);在很多过滤一些sql注入语句xss等都会将要过滤的语句写进数组中便于管理。这么多过滤语句总不能都一个个声明变量吧。
函数 函数在每个程序语言中都及其重要它将不同功能代码打包成不同的代码块极大减少了代码的冗杂。 就像我们学的那些数学公式拿来套用代数即可算出想要的结果。函数亦是如此不同函数你可以定义不同功能用到哪个功能就选择哪个函数方便简单极大的提高了代码的复用性。
定义函数 关键字function
格式
function 函数名(参数1,参数2,...参数n){
函数体具体代码
[return 参数];
}举个例子
#一个简单的计算
?php
function jisuan($canshu1,$canshu2){
$result $canshu1 $canshu2;
return $result;
}
echo jisuan(70,89);
?运行结果 解读 这是一个非常简单函数计算两个数之和在这个代码中有几个地方需要注意 jisuan(70,80) 是函数的利用方式。 $canshu1,$canshu2 这是两个形式参数可以理解为一个记号在利用函数时要传入两个参数才能计算 $canshu1 和 $canshu2 分别对应着70和89这两个参数又是参数是实际数值它是实际参数然后进入函数体中对这两个数字进行计算。 return $result; 是将计算的结果的值返回并结束函数的运行。 形式参数 如果函数需要传入参数需要用到形式参数也可以理解为记号标志。 实际参数 在向函数传入实际参数时所传入的参数值是实际参数。 函数也可以是没有参数的也可以不返回值。对于函数这方面在理解了基础知识点后要多进行代码实践多敲代码多看代码才能运用更熟练。 在函数之后还有一个比较抽象的概念 - 面向对象。 关于这个点大家可以了解和实战了基础代码后进行学习这个概念比较抽象只有多练习相应代码才能理解更加透彻。 多敲多练欲速则不达。
字符串操作 字符串是什么在前面说到了是一串连续的字符在PHP中用单引号或者双引号将其引起来。 当然还可以对字符串进行很多操作处理。举个例子来说 moyv 是个字符串我想将对这个字符翻转过来可以用到特定的函数 strrev() 来操作。 举个实际例子下面会讲到PHP与WEB交互PHP使用特定预定义的数组来接收WEB发来的HTTP协议数据这些发来的数据基本都是字符串对于这些字符串我们要进行响应处理比如说POST方式发来的数据如果要想防止SQL注入我们可以对字符串进行一些相关操作防止SQL注入。这只是一个简单的小实例更多用法需要你学习更多了解更多来自己理解。
php字符串处理函数
addcslashes — 为字符串里面的部分字符添加反斜线转义字符
addslashes — 用指定的方式对字符串里面的字符进行转义
bin2hex — 将二进制数据转换成十六进制表示
chop — rtrim() 的别名函数
chr — 返回一个字符的ASCII码
chunk_split — 按一定的字符长度将字符串分割成小块
convert_cyr_string — 将斯拉夫语字符转换为别的字符
convert_uudecode — 解密一个字符串
convert_uuencode — 加密一个字符串
count_chars — 返回一个字符串里面的字符使用信息
crc32 — 计算一个字符串的crc32多项式
crypt — 单向散列加密函数
echo — 用以显示一些内容
explode — 将一个字符串用分割符转变为一数组形式
fprintf — 按照要求对数据进行返回并直接写入文档流
get_html_translation_table — 返回可以转换的HTML实体
hebrev — 将Hebrew编码的字符串转换为可视的文本
hebrevc — 将Hebrew编码的字符串转换为可视的文本
html_entity_decode — htmlentities ()函数的反函数将HTML实体转换为字符
htmlentities — 将字符串中一些字符转换为HTML实体
htmlspecialchars_decode —htmlspecialchars()函数的反函数将HTML实体转换为字符
htmlspecialchars — 将字符串中一些字符转换为HTML实体
implode — 将数组用特定的分割符转变为字符串
join — 将数组转变为字符串implode()函数的别名
levenshtein — 计算两个词的差别大小
localeconv — 获取数字相关的格式定义
ltrim — 去除字符串左侧的空白或者指定的字符
md5_file — 将一个文件进行MD5算法加密
md5 — 将一个字符串进行MD5算法加密
metaphone — 判断一个字符串的发音规则
money_format — 按照参数对数字进行格式化的输出
nl_langinfo — 查询语言和本地信息
nl2br — 将字符串中的换行符“\n”替换成“br/”
number_format — 按照参数对数字进行格式化的输出
ord — 将一个ASCII码转换为一个字符
parse_str — 把一定格式的字符串转变为变量和值
print — 用以输出一个单独的值
printf — 按照要求对数据进行显示
quoted_printable_decode — 将一个字符串加密为一个8位的二进制字符串
quotemeta — 对若干个特定字符进行转义
rtrim — 去除字符串右侧的空白或者指定的字符
setlocale — 设置关于数字日期等等的本地格式
sha1_file — 将一个文件进行SHA1算法加密
sha1 — 将一个字符串进行SHA1算法加密
similar_text — 比较两个字符串返回系统认为的相似字符个数
soundex — 判断一个字符串的发音规则
sprintf — 按照要求对数据进行返回但是不输出
sscanf — 可以对字符串进行格式化
str_ireplace — 像str_replace()函数一样匹配和替换字符串但是不区分大小写
str_pad — 对字符串进行两侧的补白
str_repeat — 对字符串进行重复组合
str_replace — 匹配和替换字符串
str_rot13 — 将字符串进行ROT13加密处理
str_shuffle — 对一个字符串里面的字符进行随机排序
str_split — 将一个字符串按照字符间距分割为一个数组
str_word_count — 获取字符串里面的英文单词信息
strcasecmp — 对字符串进行大小比较不区分大小写
strchr — 通过比较返回一个字符串的部分strstr()函数的别名
strcmp — 对字符串进行大小比较
strcoll – 根据本地设置对字符串进行大小比较
strcspn — 返回字符连续非匹配长度的值
strip_tags — 去除一个字符串里面的HTML和PHP代码
stripcslashes — 反转义addcslashes()函数转义处理过的字符串
stripos — 查找并返回首个匹配项的位置匹配不区分大小写
stripslashes — 反转义addslashes()函数转义处理过的字符串
stristr — 通过比较返回一个字符串的部分比较时不区分大小写
strlen — 获取一个字符串的编码长度
strnatcasecmp — 使用自然排序法对字符串进行大小比较不区分大小写
strnatcmp — 使用自然排序法对字符串进行大小比较
strncasecmp — 对字符串的前N个字符进行大小比较不区分大小写
strncmp — 对字符串的前N个字符进行大小比较
strpbrk — 通过比较返回一个字符串的部分
strpos — 查找并返回首个匹配项的位置
strrchr — 通过从后往前比较返回一个字符串的部分
strrev — 将字符串里面的所有字母反向排列
strripos — 从后往前查找并返回首个匹配项的位置匹配不区分大小写
strrpos – 从后往前查找并返回首个匹配项的位置
strspn — 匹配并返回字符连续出现长度的值
strstr — 通过比较返回一个字符串的部分
strtok — 用指定的若干个字符来分割字符串
strtolower — 将字符串转变为小写
strtoupper –将字符串转变为大写
strtr — 对字符串比较替换
substr_compare — 对字符串进行截取后的比较
substr_count — 计算字符串中某字符段的出现次数
substr_replace — 对字符串中的部分字符进行替换
substr — 对字符串进行截取
trim — 去除字符串两边的空白或者指定的字符
ucfirst — 将所给字符串的第一个字母转换为大写
ucwords — 将所给字符串的每一个英文单词的第一个字母变成大写
vfprintf — 按照要求对数据进行返回并直接写入文档流
vprintf — 按照要求对数据进行显示
vsprintf — 按照要求对数据进行返回但是不输出
wordwrap — 按照一定的字符长度分割字符串PHP文件引用 PHP文件引用是指将另一个脚本的全部内容以及功能包含到当前脚本中进行使用可以减少代码的重用。与C语言中的include使用大致相似。 引用文件语句
include语句
require语句
include_once语句
require_once语句include语句 使用include语句引用外部文件时只有代码执行到include语句时才会将外部文件引用并读取代码。使用include(引用文件名称) require语句 一般要放在文件起始位置常用于引用需要使用的公共函数文件和公共类文件。 include语句与require语句比较 在调用问件时如果未找到require语句会输出错误信息并且终止脚本处理。include语句会输出警告但不会终止脚本的处理。 include_once语句 与 require_once语句 这两个与上面两个相似只不过在执行导入文件前他们会检测该文件是否在其他地方被引用过如果有则不再引用并且程序只能引用一次。
细节 最后总结几个细小注意点
1、PHP语言的扩展名为 .php
2、PHP程序中可以包含 htmlJavaScript代码
3、脚本范围在 ?php 这个范围内 ?
4、PHP注释有//#/* ... */
5、在编写PHP代码时每个语句结束时都不要忘记使用英文分号(;)即为指令分隔符PHP与WEB交互
在上面第二节用了一张图讲解了WEB基本工作流程现在我们实际练习列子来加深对这方面的理解。 在这之前我们先回忆一些HTTP请求常用到 GET 与 POST 这两个请求我们也实际操作一个例子来了解PHP是如何接收这两个请求的数据并处理的。 PHP是根据接收通过HTTP协议请求来的数据做处理的在PHP中也有写好的预定义变量来处理响应的请求
$_GET获取通过GET方式提交的数据
$_POST获取通过POST方式提交的数据
$_COOKIE获取Cookie数据这些数据多数是由setcookie()函数设置的值
$_SESSION获取包含与所有会话变量有关的信息
$_FILES处理文件上传下面通过几个小例子来了解一下。 1、GET方式表单提交并接收示例 既然是GET方式提交表单那么我们先用HTML写一个简单的表单页面
html
head
meta charsetutf-8 /
titleGET请求例子/title
/head
body
form methodGET actionget.php
名字input typetext namenamebr
年龄input typetext nameagebr
input typesubmit
/form
/body
/html将其保存为.html文件。这是一个很简单便于理解的form表单提交数据的例子method 是提交方式我们使用 GET 方式提交所以设置为 GET action 是指用哪个PHP脚本处理我们表单提交的数据在这个例子中我将其设为 get.php 。再下面是 input 的设置将其设为 text 文字域分别将名字和年龄设置的 name 设置为了 name 和 age 这两个是让 $_GET 明确接收哪个数据具体如下。 下面看看 get.php 是如何处理表单数据的
?php
$name $_GET[name];
$age $_GET[age];
echo $_GET[name].br;
echo $_GET[age].br;
echo 恭喜.$name.大帅哥/大美女.今年.$age.岁了;
?我们看到我们使用了$_GET来接收数据 $_GET[age]指的是接收年龄这个文字域的数据这个 age 就是html文件中年龄文字域中 name 设置的属性即nameage 。 我们看看运行结果 2、POST方式表单提交并接收示例 大家不妨将上面代码改成POST请求方式并接受只需简单修改一些地方即可。 然后运行观察结果大家可以看看两个URL处有什么不同。 对于GET或是POST我给出的是个简单的例子便于理解。但是在实际程序中并没有那么简单比如说你提交的数据是否为空或者与数据库交互时是否有敏感字符。当然PHP中也有相应的函数可以处理这些数据这些数据传过来都是字符串我们也可以用字符串一些函数来处理等等。 更多操作还是那句话自己多找例子多学习多敲打代码。
3、实现文件上传的示例 实现文件上传也是一个比较重要的知识点他可以帮助我们理解后期文件上传漏洞。 实现文件上传的预定义变量是 $_FILES 。 在PHP中的 php.ini 文件中有些参数可以对上传文件进行控制
在 php.ini 中定位到File Uploads处
file_uploads如果该值设置为On代表服务器支持文件上传Off为不支持默认为On。
upload_tmp_dir可以设置上传文件的临时目录上传后先放在临时目录中多数使用系统默认目录。
upload_max_filesize服务器允许上传文件最大的值MB为单位。默认为2MB。
php.ini文件修改后需要重启服务器。上面是对服务器中一些参数的了解 下面是 $_FILES 预定义变量中参数的含义
$_FILES[filename][name]上传文件的名字
$_FILES[filename][size]上传文件的大小单位为字节
$_FILES[filename][type]上传文件的MIME类型
$_FILES[filename][tmp_name]上传文件临时目录的
$_FILES[filename][error]上传文件的结果如果返回0则说明文件上传成功现在我们编写一个实际例子来加深理解。 首先编写html页面
html
head
meta charsetutf-8 /
title文件上传例子/title
/head
body
form actionuploadfile.php methodPOST enctypemultipart/formdata
上传文件:br
input typefile namefile idfilebr
input typesubmit namesubmit value提交文件
/form
/body
/html在这我们要注意的是form表单中的 enctype 属性它规定了form表单数据在发送到服务器时候的编码方式 multipart/form-data 是指定传输数据为二进制数据例如图片、mp3、文件。然后是下面上传文件域的设置input下的 type 属性设置为 file 即代表上传文件域。 然后是 uploadfile.php 代码的编写
?php
if ($_FILES[file][error] 0)
{
echo 错误: . $_FILES[file][error] . br;
}
else
{
echo 文件是 . $_FILES[file][name] . br;
echo MIME类型是: . $_FILES[file][type] . br;
echo 大小是: . $_FILES[file][size] . br;
echo 存储在: . $_FILES[file][tmp_name];
}
?在这段代码中用了简单的条件判断里面的参数也都在上面讲到了如果成功上传就会显示上传文件的一些信息。 运行结果
PHP与MySQL交互
现在我们继续学习PHP与MySql交互。 我们常将数据存储在数据库中在访问网页时通过PHP响应函数调用数据库中存储的数据然后返回到前端界面。这个流程在最上面的那张图中也将到了。 但PHP具体如何操作MySQL呢 PHP要想操作MySQL需要在 php.ini 中设置一些参数打开对应数据库扩展程序 具体介绍 然后打开对应扩展 我们使用 mysqli 扩展它与 mysql 扩展用法一样基本相似但是 mysqli 的函数名称是以 mysqli 开始的。 他们两者当然也有区别但对初学来说影响不大。 还有一个是 PDO 它可以应用在12中不同的数据库中而 mysqli 只能应用于mysql 中。 mysqli有一系列函数集可以让我们操作mysql数据库。 PHP与MySQL交互基本流程 PHP与MySQL交互有这五个步骤对应的函数 1、连接MySQL数据库
mysqli_connect(MySQL服务器地址,用户名,密码,连接数据库名称可选,MySQL服务器使用的端口默认3306)2、选择MySQL数据库
mysqli_select_db(连接表示(必选参数),数据库名称(必选参数))当然在连接数据库时也可以同时选择数据库名称3、执行SQL语句
mysqli_query(连接标识(必选参数),查询语句(必选参数))4、获取查询结果
mysqli_fetch_array()将结果集返回数组中。
mysqli_fetch_object()从结果集中获取一行作为对象
mysqli_fetch_row()从结果集中获取一行作为枚举数组
mysqli_fetch_assoc()从结果集中获取一行作为关联数组
mysqli_num_rows()获取查询结果集中的记录数5、释放内存关闭连接
mysqli_free_result(): 释放结果内存。
mysqli_close()关闭先前打开的数据库连接。PHP 5 MySQLi 函数大全以及具体用法 https://www.runoob.com/php/php-ref-mysqli.html 连接数据库并选择数据库例子
?php
$host 127.0.0.1;
$user root;
$pwd 123456 ;
$connID mysqli_connect($host,$user,$pwd);
$select_db mysqli_select_db($connID,information_schema);
if($connID){
echo script typetext/javascriptalert(连接成功)
/script;
}
else{
echo script typetext/javascriptalert(连接失败)
/script;
}
?大家运行一下修改不同参数来观察一下连接结果。 获取结果例子 https://www.runoob.com/php/php-mysql-select.html 现在大家对PHP操作MySQL有了基本的了解毕竟他获取结果方式有些多大家可以根据我给的例子多操作一下多了解一下。例子有很多多练习直到你真正的了解了这个知识点熟练应用这个知识点为止。
总结
本篇PHP基础教程讲了常见基础知识点非常实用。但是一门语言不是花个几分钟看一篇文章就能明白的要多动手实践。本篇基础教程给出了几个实例要自己动手操作。另外本篇教程省略了一些其他的细枝末节毕竟一门语言从0到1需要自己花大量时间打磨。 但这篇文章从大的方面可以对这个语言有个极大的了解从小的方面又可以学习一些基础知识点。 但还缺乏你自己的练习对Web安全和CTF来说一定要先掌握一门语言PHP好学易懂然后要学python开发属于自己的小工具。 在了解学习过一门语言之后对于其他语言学习也是有极大帮助的。