本文为大家呈现了PHP基础学习的要点,所涵盖的内容详尽而深入,PHP作为一种编程语言,其在实际应用中的特性日益凸显,期待大家能领略到PHP的独特魅力,并希望对大家的学习有所帮助。
简介
PHP,即超文本预处理器,最初源于“Home Page”的缩写,现已被正式命名为PHP:。自20世纪90年代我国互联网起步至今,互联网信息已几乎渗透至我们日常生活的各个知识领域,并且逐渐演变为我们生活、学习与工作中不可或缺的组成部分。数据表明,自2003年起,我国网页数量逐年翻倍,增长势头不减。PHP语言,作为当下最受欢迎的网站开发工具,以其低廉的成本、高效的运行速度、良好的兼容性以及丰富的内置函数库等优势,受到众多企业的青睐,广泛应用于网站建设。然而,随着互联网技术的不断进步和迭代,PHP语言也暴露出诸多问题。
依据动态网站的需求,PHP编程语言在应用实践中展现出其独特性,其技术水平的高低将直接影响到网站的运行效能。该语言拥有公开的源代码,且在程序设计上与C语言等通用型语言具有较高的相似度,这使得它在操作上既简单又易于理解,具有很强的可操作性。PHP语言在数据传输与输出方面表现卓越,其应用范围广泛,涵盖众多系统与Web服务器。面对大量数据,PHP语言能够扩展连接能力,与多种数据库无缝对接,有效减轻数据存储、查询和维护的负担。技术进步使得PHP语言开发的搜索引擎能够量身定制,提供个性化的服务,比如依据用户的偏好进行分类、搜集和保存信息,从而显著提升了数据处理的速度和效率。
主要特点
(一)开源性和免费性
因为PHP解释器的源代码是公开可获取的,因此安全性较高的网站能够自行修改其PHP解释器。此外,PHP的运行环境还可以免费使用。
(二)快捷性
PHP是一门易于掌握且便于使用的编程语言,其语法结构与C语言相似,却避免了C语言中繁杂的地址操作。此外,它融合了面向对象编程的思想,并且语法简洁明了,因此,操作和编辑过程变得十分简便,同时实用性也极高。
(三)数据库连接的广泛性
PHP能够与众多主流数据库系统实现连接,包括MySQL、ODBC等,它通过调用一系列编译后的函数来与这些数据库进行连接,其中常用的基础库为一般事务处理所提供。
(四)面向过程和面向对象并用
在PHP编程领域,开发者既可以采用过程式编程,亦能运用面向对象编程,更独特的是,这两种编程范式可以相互结合,共同使用,这在众多编程语言中实属罕见。
优点
(一)流行,容易上手
PHP无疑是当下最受欢迎的编程语言之一。其应用范围广泛,全球有超过两亿个网站由它驱动。在服务器端,超过81.7%的公共网站都选择了PHP。PHP内置了常用的数据结构,使得编程变得既方便又简单,且操作并不复杂。此外,它的表达能力十分灵活。
(二)开发职位很多
在服务器端进行网站开发时,PHP能够为求职者提供便利。众多互联网企业青睐于运用PHP开发框架,因此,市场上对于PHP开发程序员的渴求相对较高。
(三)仍然在不断发展
PHP持续接纳诸如类似技术和命名空间等功能,并且在提升性能的同时,也紧跟流行的框架发展。自7.0版本起,它不断推出性能更优的应用解决方案。
(四)可植入性强
在PHP语言的补丁漏洞升级过程中,其核心部分的植入操作既简便又快捷。
(五)拓展性强
在数据库应用中,PHP语言能够提取多样化数据,同时具备出色的执行速度。
缺点
(一)PHP的解释运行机制
在 PHP 环境下,无论是作为全局变量使用,还是作为类中的静态成员,所有变量在页面执行结束后都会被清除。
设计上存在缺陷,缺乏对PHP的关注。PHP被称为一种不透明的编程语言,这主要是因为其缺乏堆栈追踪功能,以及各种易受攻击的输入方式。它缺乏一个明确的设计理念。在早期,PHP受到了Perl语言的影响,其标准库中包含的out参数是借鉴了C语言的特点,而面向对象的部分则是从C++和Java中吸取的。
(三)对递归的不良支持
PHP在递归处理方面表现不佳。其能够承受的递归函数调用次数与其他编程语言相比,显得尤为有限。
PHP 语法注释:
//......单行注释
#...... 单行注释
/*..........*/ 多行注释
变量:
变量名需以字母或下划线开头,不得以数字起始,且不可包含空格。同时,注意大小写差异。
$x=5; $X=7; 输出为不同结果
PHP $a = 1; $A = 2; echo $a .
; echo $A; ?>
局部变量
PHP $a=1; //全局变量 function test() { //声明一个函数,名字为 test $a=15; //函数内的变量,为局部变量 echo 内部输出结果:.$a; } test(); echo
; echo 外部输出结果:.$a; ?>
PHP $a=1; function test() { //声明一个函数,名字为 test global $a; //在函数内声明并引用外部变量,注意这里是小写 global echo $a; echo
; } test(); //使用函数 echo $a; ?>
PHP $a=10; $b=20; $c=30; function test() { $a=100; 将全局变量$a$的值设为全局变量$b$与全局变量$c$的值之和。//引用全局变量,这里的 GLOBALS 必须大写 echo $a.
; } test(); //函数名不区分大小写 echo
; echo $a; ?>
PHP function test() { 静态变量$a$的值被设定为$0$,其作用域为静态,确保变量值得以保留。 echo $a . ; $a++; } test();//不使用static的话,每次输出都是 0 echo
; test(); echo
; test(); ?>
参数作用域
PHP $a = 10; $b = 20; function test() { $a = 30; $b = 40; $c = $a + $b; echo 函数内运算值:.$c; echo
; } test(); $c = $a + $b; echo 函数外运算值:.$c; ?>
echo 和 print 的区别:
echo 123,输出结果为数字,接着输出逗号,然后是456,再输出逗号,再是789,如此连续展示多个字符串。
print 123,456; //输出错误
换行符:
echo
echo \n;
echo ; //换行符
返回变量类型:
PHP $a = 1111; $b = 123; $c = null; echo var_dump($a) .
; echo var_dump($b) .
; echo var_dump($c) .
; $d是一个数组,其元素包括字符串'a'、数字1以及字符串'abc'。 echo var_dump($d) .
; $e = true; echo var_dump($e); ?>
PHP $text1=ni hao; $text2=hahaha; 输出$text1,接着是$text2。
在引用多个变量时,应使用英文的点号“.”进行连接,而空格则用于分隔不同的元素。 计算字符串text1的长度,并将结果赋值给变量a。 echo $a; ?>//空格也算作一个字符
强引用和弱引用
PHP $text1 = ni hao; echo $text1 .
;// “ ” 双引号输出会显示变量值 输出变量$text1的内容;使用单引号会导致其内部的引号被解释为字符串的一部分,而非直接输出。显示变量名本身 ?>
自增自减输出
PHP $x = 10; echo ++$x;//先自增后输出 echo
; $a=15; echo --$a .
;//先自减后输出 $y = 20; echo $y++ .
;//先输出后自增 $b=30; echo $b--;//先自增后输出 ?>
if 条件判断
PHP $x = 10; $y = 20; 若$x$的值大于$y$,则执行以下操作://对$x$与$y$的数值进行比较,一旦$x$的数值超出$y$,便输出 true echo true; 否则,若$x$等于$y$,则进入另一个条件判断:若$x$与$y$相等,则执行相应操作。输出 $x.等于$y; echo $x.等于$y; } else {//如果上面的判断都不满足就输出 false echo false; } ?>
PHP $x= (3>4)? true:false;//三元运算符 echo $x; ?>
判断
PHP $a=abc; switch ($a) { case 'red': echo red; break语句用于终止整个循环的执行,而continue语句则使得循环体中的当前迭代提前结束,并继续执行后续的循环体。 case 'green': echo green; break; case 'black': echo black; break; default: echo not color; } ?>
数组
PHP 车辆数组包括宝马、宾利以及大众品牌。 输出语句:“我喜欢这些车,分别是”,接着列出$cars数组中的第一辆车,“,然后是”,再列出第二辆车,“,以及”,最后列出第三辆车。 ?>
PHP $cars = array(); $cars[0] = BMW; $cars[1] = BINlix; $cars[2] = 大众; 输出语句:“我喜欢的是,首先,$cars数组中的第一个元素,接着,第二个元素,最后,第三个元素。” ?>
PHP $cars = array(); $cars[0] = BMW; $cars[1] = BINlix; $cars[2] = 大众; echo count($cars) .
;// count 返回数组长度 echo I like . $cars[0], , $cars[1], , $cars[2]; ?>
count 获取数组的长度
() 返还数据类型
(); 返回字符串长度
array(); 创建数组
创建了一个数组,其包含键值对:姓名为icq,年龄为20,最后一个键对应的值为true。
echo $;
定义了一个数组,其元素包括数字1、逗号、数字20、布尔值false;这是一个数字类型的数组。
echo $; //布尔型 true 打印显示1
for 循环 遍历数组:
PHP $cars = array(BMW, BinLi, 大众); $arrlength = count($cars); for ($x = 0; $x < $arrlength; $x++) { echo $cars[$x] .
; }//只输出值 ?>
PHP $cars = array(BMW, BinLi, 大众); $arrlength = count($cars); 输出变量$cars的内容,包括其数据类型、各个下标的索引以及对应的值。 ?>
关联数组:
PHP 定义数组$age,其中包含三个元素:高为30岁,李为20岁,张为10岁。 ?>
@@
关联数组2:
PHP $age = array(); $age[sun] = [20]; $age[liu] = [30]; $age[zhang] = [40]; print_r($age); ?>
多维数组
PHP $cars = array( array(111, 100, 50), array(222, 200, 100), array(333, 300, 150), ); echo $cars[1][0]; ?>
PHP $age = array(); $age[sun] = [20]; $age[liu] = [30]; $age[zhang] = [40]; // print_r($age); 遍历年龄数组,以键值对的形式,对每个元素进行迭代处理。
; } ?>
排序:
PHP 汽车列表包括Blinli、wzida和muling三种车型。 $x = sort($cars); echo $x; print_r($cars); ?>
PHP $cars = array(Blinli, wzida, muling); $x = rsort($cars); echo $x; print_r($cars); ?>
$ — 引用全局作用域中可用的全部变量
PHP $x = 10; $y = 29; function add() { // global $x, $y; // $z = $x + $y; // echo $z; 全局变量z的值被设置为全局变量x和全局变量y的和。 输出全局变量中键名为z的值。 } add(); ?>
PHP $ 用于收集 HTML 表单提交的数据
<Meta charset=utf-8>PHP echo 提交的内容: 检查输入的用户名,确认密码信息,确保数据正确无误。 ?> //在PHP中通过打印函数引入我们的HTML+CSS+JS
PHP 连接MysqL数据库
1、MysqL PHP
MySQL的衍生版本,即MySQL的增强型版本,具备较高的安全性,且仅适用于对MySQL数据库进行操作。
一、面向对象的方法 NEW
二、面向过程的使用方法
PDO,即PHP数据对象,目前支持12种数据类型,其安全性卓越,并且采用面向对象的方式进行应用。
PHP $hostname=127.0.0.1; $name=root; $pass=root; $db=messageBox; $conn=MysqL执行连接操作,指定主机名为$hostname,用户名为$name,密码为$pass,数据库名为$db。 if (!$conn) { die(连接失败.MysqLi_connect_error());/* MysqLi_connect_error()该函数保存了连接数据库的错误信息 */ } /*create table students( 用户ID为整数型,长度为15位,不可为空,且自动递增。 name varchar(50) not null, gender char(2), message text, primary key(uid) )*/ $sql查询数据库中用户表,条件是用户ID等于1; // MysqLi_query($conn,$sql);执行成功返回true $query_result=MysqLi_query($conn,$sql); if ($query_result) { /*如果执行成功就会执行如下的代码*/ $result_numbers=MysqLi_num_rows($query_result);/*查询出数据库中记录条数,具体的数据没出来*/ if ($result_numbers>0) { $all_result=MysqLi_fetch_all($query_result); /*MysqLi_fetch_assoc将查询的结果转换为关联型数组*/ //MysqLi_fetch_array()关联型和数字型 //MysqLi_fetch_all()数字型 执行输出操作,展示所有结果。 //$all_result它是一个MysqLi_fetch_all处理之后的数据,该数据是一个数组,数组的长度取决于sql的执行 //如果结果是一个记录,则$all_result的长度是1 若输出包含两条数据,那么$all_result的数值将为2。 //$all_result保存的内容也是数组,需要遍历显示数据内容 遍历所有结果,将每个结果与其对应的键值对进行操作。 遍历数组中的每个元素,将键和值分别赋给对应的变量。 输出该值,并换行。 } } } else{ echo 没数据!; } } else{ echo 查询失败.MysqLi_error($conn); /* MysqLi_error($conn)保存了执行sql语句的错误信息 */ } MysqLi_close($conn); ?>
解决乱码:
echo ; //指定字符集
或者:
(-Type:text/html;=utf-8);
PHP 集合 HTML
PHP // echo <Meta指定字符集为UTF-8,以该编码格式进行数据处理。 设定标题头,指定内容类型为text/html,字符集编码为utf-8。 echo ''; $name等于从$_POST数组中获取的键名为'name'的值;这一操作对应于表单的method属性设置为POST的情况。 接收到的密码数据被赋值给变量pwd,该数据来源于$_POST数组中的'pwd'键。 if ($name != && $pwd != ) { //判断当前提交的数据是否为空,不为空的情况下执行下面的代码 输出用户名信息为:,$name。
; 输出密码信息为:PassWord,其值为.$pwd。 } ?>
(isset($name) && isset($pwd))
isset 检测变量是否设置,不为NULL
如果检测的对象是(空),返回值是 1 false
判断数据类型
PHP 常量
在调用函数时,请确保传入正确的参数,包括变量的键(建议使用大写字母表示),变量的值,以及布尔类型的true或false。
(,this is a );//不能用 $ 数字 开头
PHP UNMBER被定义为:这属于黑客,属性为真。定义常量 echo UNMBER .
;//true 忽略大小写,默认是false echo unmber; ?>
PHP //结合函数使用 define(UNMBER, this is a hacker, true); //定义常量 echo UNMBER .
; echo unmber .
; function test() { echo UNMBER; } test(); ?>
PHP $string=1234; echo $string[0]; //以下标方式取值 ?>
反转:
PHP $string=1234; echo strlen($string); //计算字符串长度 echo $string[0]; //以下标方式取值 $string1=strrve($string);//反转 echo $string1; // 4321 对字符串进行截取操作,从原字符串中剔除首个字符,即舍弃第一个字符的数据;若需保留最后一位字符,则使用-1作为参数;若需保留最后两位字符,则使用-2作为参数。 echo $string2; // 234 执行echo命令,对字符串“123456789”进行去空格处理;去除字符串前后的空格123 456 789 ?>
cmd-->PHP~\PHP -r ();
PHP~\PHP -f .PHP文件,可以拖拽到CMD窗口
$str1 = 123;
echo $str1 .= 456;
PHP 表单
HTML
style 选择器:
.error{}
p{}
#ID {}
echo (); //实体化代码输出,忽略代码本身输出内容
echo (i\\m abc); //删除转义符

trim 去除左右两端的空格
echo trim( 123 );
对于匹配到的表达式(使用正则表达式进行匹配),被该表达式所对应的字符串,其返回结果为一个整数(取值为0或1),即布尔值。
匹配上,返回 1 false 否则为 true 0
echo("/PHP/,您应该知晓,PHP是一种;")
! 取反
分隔符不得包含字母数字,亦不可使用反斜线。

span 组合行内元素 class
文件包含:引入某些文件,去使用该文件的内容。
方式有4种:
1、 文件路径/文件名;
如果引入文件错误,会报警告,后续代码依旧会执行。
2、 文件;
用法同 基本一致,只需包含一次,后续可一直使用。
3、 文件;
若文件包含在内却无法找到,系统将显示错误信息ERROR,此后所有代码的执行都将受阻。
4、 文件;
用法同一致,只需包含一次,后续可一直使用。
目录跳转功能得以实现,既可借助相对路径如../../..file,亦能通过绝对路径进行操作。
copy 1.png/b+1.txt/a 2.png
a 表示是ASCII格式
b 表示该文件是二进制文件
把文本文件加装到图片文件中。
在处理文件时,我们需要包含特定文件以利用其中的内容。在PHP编程语言中,实现文件包含的功能有四个相应的函数可供选择。
(1) 文件 /(文件)
在包含文件的过程中,若未能找到相应的被包含文件,系统将发出警告信息;然而,即便如此,后续的代码执行仍将照常进行。
(2) 文件
使用方法和使用方式大体相同,只需在文件中添加一次,之后便可以持续使用。
(3) 文件
包含文件时,如果找不到会报致命错误,其后续的代码均不执行
(4) 文件
用法和用法一致,包含文件时只需要包含一次即可
若文件内容遵循PHP规范编写,则该代码将被执行;反之,若文件未采用PHP语法,其内容将被读取。
copy 1.png/b+1.txt/a 2.png
a 表示该文件是ASCII文本格式
b 表示该文件是二进制文件
PHP会话管理
会话涉及服务器与用户间数据交换的途径,此过程在数据传输前需先构建传输通道。客户端负责对会话进行管理,而服务器亦然,二者均承担着会话管理的职责。
和的比较:
用户的浏览器中存储着这样的信息,它是由服务器在返回包中通过set-指令设置的,用以标识用户浏览器与服务器之间的会话状态。只有登录成功后,用户才能获取这些数据,而这些数据通常都有一定的时效性,一旦过期,用户需要重新登录。获取数据后,用户的每次请求都会携带这些信息,服务器会对其合法性和时效性进行验证,同时,数据的发送还需遵守浏览器的同源策略。
该会话状态存储于服务器端,用以标识用户与服务器之间的时间同步,且与用户身份一一对应。服务器需识别登录到站点的具体用户。通常,这些状态信息以文件形式保存在/tmp目录下,格式如下(例如:),当前服务器分配给浏览器的会话标识为:,一旦该标识值发生变更,服务器便会要求用户重新进行登录验证。
查看 的方式:
1、在当前登录过的页面的URL中输入,:alert(.)
2、在中输入:alert(.) 或者 .
3、在浏览器自带的网络管理工具中。
(key,123); 要写在HTML代码之前。
(name,456,time()+5);
echo $.
(name,value,time()-3600);//删除
($);
$=1;
$=true;
unset($);//删除中的某个值
();//清除所有 值
();//开启
web 插件
fopen(打开文件的方式,,,):
$file=fopen(test.txt,a+);
fread($file,1024);
feof(); 检测是否到达文件末尾
($NAME); 关闭 进程
fopen(打开文件的方式,,,):
r 只读
r+ 读和写
w 写方式打开,如果文件不存在则创建文件
a 追加内容
a+ 读和追加,如果文件不存在则创建文件
$file=fopen(test.txt,a+);
读取文件
fread($file,1024); //读取文件
feof(); 检测是否到达文件末尾
fgets($file); //读取文件
在读取文件的过程中,只要没有到达文件末尾,就持续进行;//持续检查文件是否已到结尾
echo fgets($file).
;//每次只读取一行
while (!feof($file)) { //判断是否到达末尾
echo fgetc($file).
;//每次只读取一行
(); 删除文件
($NAME); 关闭 进程
fputs();
echo (123.txt); 读取文件
fputs(fopen(1.PHP,w),);
echo (1.PHP);
站长工具
$str=Oz8+;
$shell=($str);
使用fopen函数以写入模式打开文件ceshi.PHP,然后通过fputs函数将内容$shell写入该文件。
使用 加密 解密
fopen函数用于打开文件ceshi.PHP,以写入模式('w')打开,然后fputs函数将数据写入该文件,其中(/Pg==)代表写入的内容。
file 换行 \n

有兴趣的朋友们不妨点击《PHP教程》链接,以获取更多关于PHP的相关知识学习。
扫一扫在手机端查看
- 上一篇:php laravel 1.2 PHP编程语言江湖地位_PHP 不会消亡,但需要重新定义自己
- 下一篇:laravel与thinkphp框架对比_解读主流框架laravel和thinkphp大对比谁更胜一筹
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1