百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

小白教你PHP(小白教你学移动机器人)

haoteby 2025-02-04 14:07 2 浏览

本文章为连载文章

建议先阅读前篇文章:PHP站点要这样配置服务器才安全

当然不愿麻烦的,我们在这里也回顾一下。

昨日回顾

主机(站点)配置

一个站点的2个核心信息为:

ServerName 站点名称/服务器名/域名

DocumentRoot "站点的真实目录"

单站点配置项

端口监听:

Listen 端口号

设置主机(站点)的名字:服务器名,站点名

设置主机(站点)的物理路径:

目录访问权限

Options Indexes #设置目录可显示“文件列表”

Order Deny,Allow #先拒绝后允许或先允许后拒绝,不管哪个顺序,都是后者覆盖前者

Allow from All

#下一行,可以让我们在文件夹中设定权限

AllowOverride all

目录访问权限中的“分布式权限”:

一个站点的任何一个文件夹,都可以对其进行“单独权限设置”:

1,需要在该文件夹中放入一个特殊名字的文件: .htaccess

2,该文件夹的内容,几乎可以跟Directory中的设置一样

3,该文件中的设置,优先于Directory中的设置,即如果有同样设置项但值不同,以.htaccess中的为准;

4,.htaccess中的设置项,无需重启apache,就可以立即生效。

多站点的配置:

分3步:

1,在httpd.conf中,打开“虚拟主机配置文件”:apache安装位置/ conf/ extra/ httpd-vhosts.conf

2,在该虚拟主机配置文件(httpd-vhosts.conf)中,添加一行表示要进行多站点配置的ip端口:

NameVirtualHost *:80

3,然后,在其中,一个站点一个站点进行配置,每个站点的基本形式如下:

ServerName ....

DocumentRoot .....

站点别名的设置:

ServerAlias 别名1 别名2 ...

注意:它是写在ServerName并列的位置。

目录别名(虚拟目录)的设置:

就是设置一个“虚拟的目录名字”,以供外界访问“站点之外的内容”。

下面我们进行今天的学习

php基本语法形式

php的标记符

有以下形式:

形式1(推荐):

这里要写符合php语法的语句

?>

形式2:

形式3(不推荐):

这里要写符合php语法的语句

?>

它依赖于php.ini中的一个设置项:

将其改为On,则上述形式就可以用了。


php的结束标记(比如 ?> ),在如下情况可以省略:

php的语句之后,再没有了html代码部分

php的区分大小写特性

1,变量区分大小写;

2,常量通常默认也区分,但可以人为设定为不区分(但这种做法不推荐)

3,其他场合的关键字都不区分,比如函数名,系统关键字(for,if,return....)

一条语句使用一个分号结束

1, 在一个php的语句标记中的最后一个分号可省略

2, php结束标记省略则不能省略最后一个分号

php的注释

单行注释:

形式1: //注释内容

形式2: #注释内容

多行注释:

/* 注释内容,可以多行 */

2个多行注释的技巧:

有时候,我们因为测试或别的原因,需要将一大段代码多次进行“注释”或“反注释”;,则此时,可以使用如下2个技巧来方便实现:

技巧1:

反注释:

技巧2:

反注释:

变量

基本理解

变量可以理解为只是一个代表一定存储空间及其中的数据的一个“标识符”——也就是一个名字。

$v1 = 1; 这一行代码,图示如下:

这表明,使用该变量,就是在使用该数据空间的数据值!比如:

echo $v1; ///输出的是数据1

$v2 = $v1 + 3; //此时,其实进行的是1+3的计算!

使用形式:每个变量名前面必须以$开头。

定义形式:php中,不支持“单纯定义”一个变量,而是,在第一次一个变量赋值的时候,就算是定义变量!

变量的基本操作

只有4个操作:

赋值:

等号(=)的左边放变量名,右边放“数据”,就是赋值;

$v1 = 1;

取值:

任何需要一个数据的语句中使用一个变量,此时就是指从该变量取得该变量的值——取值;

概括来说,大约有如下情形:

echo $v1; //取出v1的值并输出

$v2 = $v1; //取出v1的值并给其他变量赋值;

$v2 = $v1 + 3; //取出v1的值并与3进行运算!

$v2 = round( $v1 ); //取出v1的值并并使用函数round()对其进行四舍五入运算

判断isset(变量名):

作用:判断该变量是否存在,或该变量是否有数据值!存在或有数据值,就是true,否则就是false

删除unset(变量名):

含义:删除一个变量,并不是指将该变量从程序中删掉,而是,“断开”该变量名跟该变量原有的数据值之间的“引用关系”(联系)!,此时,会有这样的结果:

1,该变量名已经不指向(引用)任何数据了,则此时其isset()判断的结果就是false

2,该数据(可能)没有任何变量指向它了,就成为“无法使用的数据”——通常就被自动回收了

$v1 = 1;

unset($v1);

$s1 = isset($v1); //false

变量命名规则

基本规则——保证程序的正确性

以字母或下划线开头

后跟任意数量(含0个)的字母,数字和下划线

行业规则——保证程序的可读性

有3种常见的命名法:

1,骆驼命名法:首单词小写,其后每个单词首字母大写

举例:$name $myName $myFatherName

2,帕斯卡命名法:每个单词首字母大写

举例:$Name $MyName $MyFatherName

3,下划线分割法:每个单词小写,并且之间用下划线分开

举例:$name $my_name $my_father_name

变量的传值方式

1,变量的传值方式,是指“一个变量,传给另一个变量”的内部细节形式——单对单;

2,变量的传值方式,只有2中:值传递,引用传递;

值传递

$v1 = 1;

$v2 = $v1; //这就是值传递

简单理解:将$v1的值取出来(注意:$v1中的值还在),然后再用该值给$v2赋值。

值传递,就是变量v1的值进行了复制,然后在给另一个变量v2赋值。

注意:

1这两个变量此时是值相等的;

2这两个变量又是互相独立的——互不影响;

即$v1 = 10; 则echo $v2 ;//输出1

引用传递

php中,只有一种语法形式可以实现变量的引用传值方式:&符号。

举例如下:

$m1 = 1;

$m2 = & $m1; //引用传值方式

简单理解: 将变量$m1跟其数据值之间的“引用关系”,复制一份,再给予变量$m2,即,此时,变量$m2也同样具有跟原来数据的一个“引用关系”(指向关系);

结果是:

1,此时仍然有了2个变量,但只有一个数据值(数据空间),2个变量都共同指向该数据空间。

2,对其中任何一个变量的操作,其实都是在操作数据值(空间);

代码对比演示:

可变变量:

$s1 = “abc”; //这是一个变量,里面存储的是字符串”abc”

$abc = 10; //

echo $$s1; //???,输出10

理解:

1,在php中,一个”$”后面,总是跟着一个变量名!

2,这里,echo输出的这个变量(以第一个$为标识)的名字是:$s1, 即”abc”

3,所以,这里输出的是 $abc, 即 10

4,这种连续出现“$”的变量形式,就是所谓的“可变变量”;

预定义变量

所谓预定义变量,其实指,php这个语言工具中,预先就定义好的变量;

我们只是“拿来使用”。

综述

主要有:$_GET, $_POST, $_REQUEST, $_SERVER, $GLOBALS,

均是数组

系统定义与维护——即我们不应该其给其赋值或销毁其值,只应该去“用其值”。

具有超全局作用域——哪里都可以使用。

不同情形下可能具有不同的值

$_POST变量

含义:

它代表用户通过表单以post方式( method=”post” )提交的时候所提交的所有数据——这个称为post数据。

基本演示:

form_post.html页面:

post_data.php页面及输出结果为:

isset(变量):判断变量是否存在,或变量是否为空(null);如果存在,就是true,否则就是false

empty(变量): 判断变量的“内容”是否为空的(不是null的空,而是没有内容),基本上,是一些硬性规定,如下数据都是“空的”: 0, “”, “0”, false, null, array()空数组也是空

如果一个变量内容是空的,empty()返回的结果是true,否则是false

小案例:php页面计算器:

$_GET变量

含义:

它代表用户通过get方式( 有5种get形式 )提交的时候所提交的所有数据——这个称为get数据。

小提示:get,post没有翻译!

提交get数据有5种形式:

形式1:

这种形式的get数据,跟post数据类似,数据内容由用户填写或选择而得到!

形式2:

链接文字

说明:

1,它只是一个链接而已,只是在链接文件名的后面加上“?”,然后一个一个“串接数据”;

2,数据形式为:数据项名称=数据值, 相互之间用“&”符号隔开

3,这种形式的数据也同样是“点击链接”就提交的get数据,但用户只能选择点还是不点,而不能修改数据。

形式3:

说明:

1,该语句可以看做是通过js技术实现的页面跳转功能,跟a标签的连接功能完全一样!

2,其中该语句,通常都是放在一个函数中,然后因为某个事件发生而去调用该函数!

形式4:

说明:

该语句其实跟形式3完全一样功能,只是location这个对象实现页面跳转的另一个语法形式而已!

形式5:php的跳转语法

//语法形式: header(“location: 目标网页地址”);

header(“location: 目标文件.php?data1=5&data2=cctv&age=18”);

?>

小结:

上述多种get形式提交数据,都要理解为:

跳转到某个页面,并“同时”携带(提交)一定的get数据过去!

不管哪种形式的get数据提交,接收get数据,都只有一种形式,跟post类似:

$v1 = $_GET[‘数据项名称’]; //取得一个get数据项的值;比如$_GET[‘data1’], $_GET[“age”];

也可以“输出”所有get数据:

print_r($_GET); 或 var_dump($_GET);

$_REQUEST变量

含义:

一句话,它是$_GET变量和$_POST变量数据的“合集”:即,它里面同时存储了这两种数据。

结果为:

如果表单为get提交方式:

结果为:

怎么能同时具有get和post数据呢?

只有一个方式:

举例:

提交后结果为:

request数据取值时,跟get数据和post也完全一样!

$_REQUEST[‘数据项名称’];

当post数据和get数据的数据项名称相同时(其实我们反对这么做),默认是post数据覆盖了get数据。

不过这个状况同样可以在php.ini中设置:

默认时:

可修改为:

$_SERVER变量

含义:

它代表在一次浏览网页的过程中的浏览器端的一些信息或服务器端的一些信息。

我们只是在程序中可以拿到这些信息,并用于编程所需!比如:取得用户的访问IP地址。

注意:

这种信息,随着不同的页面,和不同的服务器,以及不同的时刻,都可能不同!

要求:

大约有30个左右的信息,我们只要知道其中5个左右!主要有:

$_SERVER[‘REMOTE_ADDR’]:获取访问者的ip地址

$_SERVER[‘SERVER_ADDR’]:获取服务器所在的ip地址

$_SERVER[‘SERVER_NAME’]:获取服务器的名字,其实就是站点设置中的servername

$_SERVER[‘DOCUMENT_ROOT’]:获取站点的真实物理地址,其实就是站点设置中的documentroot

$_SERVER[‘PHP_SELF’]:获取当前网页地址(不含域名部分)

$_SERVER[‘SCRIPT_FILENAME’]:获取当前网页地址物理路径

$_SERVER[‘QUERY_STRING’]获取当前网页地址中的所有get数据(就是?号后面部分),但只是一个整体的字符串而已。

$GLOBALS变量

含义:

它也是一个“重复性数据”,它里面存储了我们自己定义的所有“全局变量”。

举例:

$v1 = 1; //定义了一个全局变量,

此时,就有了这样一个数据:$GLOBALS[‘v1’],其值就是1

echo $v1 ; //输出1

echo $GLOBALS[‘v1’]; //输出1

这个变量,主要是用于在局部范围不可以使用全局变量的时候,又需要该全局变量的值,此时就可以用它来取得该全局变量的值。

再定义一个新的变量:

查看相关素材及更多课程请搜索微信公众号“爱搞机个人版”,喜欢学习的建议关注下,所有课程免费! 点下关注不迷路!

相关推荐

手机如何检测是否被安装木马程序?如何防止路由器被黑客重置?

黑客攻击无线路由器有3种途径:...

盈盈可握的娇媚——全能美物ORICO WRE-30

由于工作的关系经常出差,在酒店除了一个RJ45接头,通常都没有无线网络可以提供,不可能自己携带太大的无线路由器,便携式的也买过几个,但是功能上大打折扣实在无法忍受,一直期盼能有既便携也功能丰富强大的产...

安卓重大锁屏密码漏洞,国产手机有几个中招了?

上周,一条新闻吸引了托尼注意。只用一张SIM卡,1分钟不到就能解锁你的安卓手机?...

零代码+免费+联网搜索:用DeepSeek+AnythingLLM搭建专属AI知识库

引言在信息爆炸的时代,如何高效管理私有数据并借助AI能力实现精准问答?本地私有知识库成为解决数据安全与智能化的最佳方案。本文将手把手教你使用开源工具AnythingLLM(项目地址:...

iOS越狱更轻松?黑客破解Lightning连接器

IT之家(www.ithome.com):iOS越狱更轻松?黑客破解Lightning连接器近日,德国黑客StefanEsser,也就是人们熟知的i0n1c在他Twitter上表示,黑客已成功破解了...

如何在 Windows 11 中更改 PIN

#寻找数码点评派#打开Windows设置,转到帐户登录选项,然后选择PIN(WindowsHello)...

2019年终黑客工具盘点-最佳篇

2019已经匆匆溜走,在2020伊始,小兮为大家带来了2019年终工具盘点的最佳篇,将分成三个部分为大家推荐工具,分别是Windows最佳工具、Linux最佳工具和手机最佳工具。话不多说,开整!Win...

磁盘被 BitLocker 锁住了怎么办?教你轻松解决

如果你的磁盘被BitLocker锁住,通常是因为系统检测到潜在的安全风险(如硬件改动、多次密码错误等)或丢失了密钥。以下是分步解决方案:一、确认被锁原因①硬件改动:更换主板、TPM芯片或启动顺序变化可...

风靡全球的安全应用AppLock,同样可能泄露隐私

安全研究人员发现,DoMobileLtd.公司开发的知名的安卓安全应用AppLock存在多个漏洞,容易受到黑客攻击。AppLock应用锁简介AppLock在超过50个国家拥有1亿多用户,它自身支持2...

安卓5.1.1前所有版本曝密码漏洞,轻松乱码即可破解锁屏

据德州大学研究人员发现代号棒棒糖的Android5.x存在一个严重的软件漏洞,只要攻击者能拿到机子的情况下,手机若设置的是数字密码解锁方式,只要输入足够长的乱码就能绕过屏幕锁定,进入到HOME主页取...

手机里有钱的,这5项设置要打开,就算丢了别人也偷不走

随着手机支付时代的到来,可恨的坏人也紧跟支付方式的变化,改为盯上了我们的手机。如果你手机里有钱的,那么一定不要掉以轻心,做好以下5项设置,让手机里的钱的更安全。设置SIM卡锁定设置SIM卡锁定,其实就...

原来破解邻居家的WiFi这么难?还是用万能钥匙吧

我们中的许多人认为,入侵wifi就像用铁锤打破塑料锁一样,并且使用以下提到的工具也是如此。入侵无线网络只是从防御性安全转移到攻击性安全的开始部分。入侵wifi包括捕获连接的握手并使用字典攻击等各种攻击...

电脑开机PIN码忘记了怎么办?教你不用重装系统也可以重置

在使用电脑的时候,我们往往会为了保护电脑的安全,从而设置开机密码。但是总会出现PIN码忘记导致无法开机使用,特别是许多用户反复的输入错误密码导致登录次数过多或者重复的开关机,登录选项被禁用,请使用其他...

送你个使用锦囊 防止蓝牙耳机被“策反”

你每天戴的蓝牙耳机可能被定位跟踪?近日有报道称,部分蓝牙耳机存在安全漏洞,可被不法分子快速植入具有定位功能的代码,从而实现远程跟踪,甚至监听。这一话题迅速登上微博热搜榜,不少网友惊呼:自己身边居然潜伏...

系统小技巧:无懈可击 Windows组策略管理系统密码

为了保护自己的系统安全,我们一般都会为系统设置密码。不过很多人为了记忆方便,设置的都是类似“123456”这样的简单密码,或者即使设置了较为复杂的密码,但是使用的时间很长也不变化。这些密码策略其实都有...