【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发

举报
迷彩 发表于 2023/05/31 00:27:39 2023/05/31
【摘要】 前言PHP ( Hypertext Preprocessor,超文本预处理器)是一种被广泛应用开放源代码、多用途、运行在服务器端的脚本语言。在上一篇文章《【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍》中,我们介绍了PHP的优势和PHP集成开发环境的简单搭建以及浅尝了一下PHP代码的编写,写了一个hello world的程序。本文接着继续介...

前言

PHP ( Hypertext Preprocessor,超文本预处理器)是一种被广泛应用开放源代码、多用途、运行在服务器端的脚本语言。在上一篇文章《【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍》中,我们介绍了PHP的优势和PHP集成开发环境的简单搭建以及浅尝了一下PHP代码的编写,写了一个hello world的程序。本文接着继续介绍PHP的相关语法。


上一篇文章中我们了解到PHP可简单地视为和较流行的开发动态网页用的程序语言,PHP是web开发的重要构件,是服务器端嵌入到HTML中的脚本语言。下面我们展开来唠唠其中的相关内容:

服务器端语言

开发Web应用这种B/S结构的软件,不仅需要有编写客户端界面的语言,还要有编写服务器端业务流程的语言。例如,编写界面使用的HTML、css 和JavaScript都是在用户通过前端交互发出请求后,服务器再将代码发送到客户端,并在客户端自己计算机的浏览器中解析执行的程序。而PHP则是服务器端运行的语言,只能在服务器端运行,而不会传到客户端。在PHP代码中如果有对文件之类的操作,可以都是操作服务器上的文件,PHP获取的时间也只能是服务器上的时间。只有当用户请求时才开始运行,并且有多少请求,PHP程序就会在服务器中运行多少次。然后PHP根据不同用户的不同请求,完成在服务器中的业务操作,并将结果返回给用户,最终渲染到浏览器上


PHP是可以嵌入到HTML中的语言

在HTML代码中可以通过一些特殊的标识符号将各式各样的语言嵌入进来。例如:css、Javascript都可以嵌入到HTML中,配合HTML一起完成一些HTML完成不了的功能,或者说是对HTML语言的扩展,而它们都是由浏览器解析的。PHP程序虽然也可以通过特殊的标识符号嵌入到HTML代码中的,但和CSS或JavaScript不同的是, 在HTML中嵌入的PHP代码需要在服务器中先运行完成。如果执行后有输出,则输出的结果字符串会嵌入到原来的PHP代码处,再和HTML代码一起响应给客户端浏览器去解析。这也说明PHP是个服务器端语言

如下面的代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "我的标题";?></h1>
    <p>我的第一个段落。</p>
</body>
</html>

脚本语言

脚本语言,又称动态语言,脚本通常以文本形式(如ASCII)保存,只在被调用时进行解释或编译。PHP程序就是以文本格式保存在服务器端的,在请求时才由Web服务器中安装的PHP应用模块解析,并从上到下一步步地执行

注:PHP程序一定是以<?php开头,以?>结尾,把你的PHP代码放在开始符号和结束符号中间,如上面的例子,如果你设置开启了PHP的短标签(short_tag)则可以写成<? echo "我的标题"; ?>或者<?="我的标题"; ?>,可以把开始符号的<?php中的PHP省略掉写成:<?


PHP能做什么?

术语有专攻,那PHP都能做些什么呢,或者说能用于什么功能或项目的开发。PHP需要安装PHP应用程序服务器去解释执行,是用来协助web服务器工作的编程语言,也可以说是对web服务器功能的扩展,并外挂在web服务器上一起工作的。用户如果通过浏览器访问web服务器需要得到动态响应的结果,Web服务器就要委托php脚本编程语言来完成。下面就简单罗列PHP能够做事:

1.收集表单

表单是网络编程中最常用的数据输入界面程序.表单通常可以在提交是使用GET或者POST方式将数据发送给PHP脚本程序处理,或存入数据库,如我们经常见到的调查问卷,注册,登录都是表单形式

2.生成动态网页

PHP脚本程序和客户端的javascript脚本程序不同的是,PHP代码是运行在服务器端的PHP脚本程序可以根据用户在客户端的不同输入请求,在服务端运行该脚本之后,动态输出用户请求的内容.这样用户就能接收到想得到的结果,但无法知道其背后的代码是如何运作的.甚至可以将web服务器设置成让PHP来处理所有的html文件,这样用户就无法得知服务器端到底做了什么

3.字符串处理

在编写程序代码或是进行文本处理时,经常需要操作字符串,所以字符串处理一直是程序员使用最多的技术之一.PHP是把字符串作为一种基本数据类型来处理的.在PHP中提供了丰富的字符串处理函数,并使用强大的正则表达式来对字符串或文本进行搜索,查找,匹配,替换等操作

4.动态输出图像

使用PHP并不局限于输出HTML文本.PHP可以通过GD扩展库动态输出图像,甚至可编辑图像

5.服务器端文件系统操作

想让数据持久化,也就是长久保留,可以使用数据库或是文件系统来存取数据,在某些存取数据简单,或者一些特定应用中,没有必要使用数据库,就可以使用文件来保存和操作数据,PHP可以对文件和文件目录进行打开,编辑,查看,复制,删除等等操作

6.操作数据库

PHP最强大最显著的特性之一是它支持多种的数据库的操作。特别是跟PHP的无缝结合,而且用法极其简单

7.会话跟踪控制

我们访问Web服务器通常是使用HTTP协议完成的,但它是一个无状态的协议,没有一个内建机制期来维护两个事务之间的状态。也就是说当一个用户在请求一个页面后再请来控制功能时HTTP将无法告诉我们这两个请求是来自同一个用户。所以可以在PHP中使用会话网站中跟踪一个用户,这样就可以很容易地做到用户登录的支持,并根据某个用户的授权级别和个人喜好显示相应的内容,也可以根据会话控制记录该用户的行为。

8.处理XML文件

PHP具有极其有效的文本处理特性,支持从POSIX扩展或者Perl正则表达式到XML文档解析。为了解析和访问XML文档,PHP 4支持SAX和DOM标准,也可以使用XSLT扩展库来转换XML文档。PHP 5基于强健的libxm2标准化了所有的XML扩展,并添加了SimpleXML 和XMLReader的支持,扩展了其在XML方面的功能

9.支持利用大量的网络协议

PHP还支持利用诸如LDAP、IMAP、SNMP、NNTP、 POP3、HTTP、COM ( Windows环境)等不计其数的协议的服务。还可以开放原始网络端口,使得与任何其他的协议能够协同工作。PHP支持和所有Web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP已经支持了对Java对象的即时连接,并且可以将它们自由地用作PHP对象。甚至可以用CORBA扩展库来访问远程对象。

10.服务器端的其他相关操作

PHP是跨平台的,他能够应用于各种主流和非主流操作系统.如:windows,linux以及linux各种发行版,unix以及unix各种变形.他能够结合Apache,Nginx,IIS,PWS等等各种web服务器


PHP的程序基本语法

PHP代码可以单独编写运行,然后再渲染到前端,如一下代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "我的标题";?></h1>
    <p>我的第一个段落。</p>
    <div>这是一个div标签</div>
    <div>
		<table border="1">
			<tr>
				<td>表格1</td>
				<td>表格1</td>
				<td>表格1</td>
			</tr>
			<tr>
				<td>表格1</td>
				<td>表格1</td>
				<td>表格1</td>
			</tr>
		</table>
	</div>
    <span>这是一个span标签</span>
</body>
</html>

运行结果如下:

在PHP中还可以嵌入html代码中输出并执行javascript代码,这就是PHP的灵活性

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "我的标题";?></h1>
    <p>我的第一个段落。</p>
	<?php
		echo "<script>alert('你好,我会javascript脚本');</script>";
	?>
</body>
</html>

刷新浏览器之后,执行代码效果如下:


使用PHP输出控制html标签的输出

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "我的标题";?></h1>
    <p>我的第一个段落。</p>
	<?php
		$a =5;
		if($a>1){
	?>
	 <p>控制html内容输出1</p>
	<?php
		}
	?>
	
	<?php
		if($a<3){
	?>
	 <p>控制html内容输出2</p><!--这个在页面是不会显示的-->
	<?php
		}
	?>
</body>
</html>

在PHP中,变量都是以$符合开头,如$age =18;以分号结束一句代码,跟大多编程语言一样,都是以';'分号结束,不像Python,Python是以缩进层级来区分不同行的代码,没有结束符号

执行结果:

使用循环输出多个html标,减少重复html代码的书写

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "循环控制输出html";?></h1>
	<?php
		$a =5;
		for(;$a>=1;$a--){
	?>
	 <p>控制html内容输出1</p>
	<?php
		}
	?>
	<hr>
	<?php
		$b =0;
	?>
	
	<?php for(;$b<=5;$b++):?>
	 <p style="color:#f00;">控制html内容输出2</p>
	<?php endfor;?>
</body>
</html>

执行结果如下:

使用PHP控制html输出以及控制css样式

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP基础</title>
</head>
<body>
    <h1><?php echo "<span style='font-size:18px;color:#0f0;'>控制输出html";?></h1>
	
	<?php
		$b =0;
	?>
	
	<?php for(;$b<=5;$b++):?>
	 <p style="<?if($b%2==0):?>color:#f00;<?else:?>color:#0ff;<?endif;?>">控制html内容输出2</p>
	<?php endfor;?>
</body>
</html>

短短几行代码就可以控制html代码样式和输出,有时候比js还好用

PHP中类的定义

PHP是一们面向对象的语言,拥有面向对象所以特性,所以当然可以使用面向对象的模式来编写代码.php是单继承。php是不支持多继承的,但是php可以通过使用interface或者trait实现多继承,如【interface test1 {public function connect();}interface test2 ...】

代码如下:PHP的class的定义跟java语言差不多.

<?php
class Person{
	public $name;
	
	public function say(){
		echo $this->name . "say hello";
	}
}

interface Body{
	public function write();
}

interface Body2{
	public function take();
}

class Student extends Person implements Body,Body2 {
	public $name;
	public $grade;
	public function say(){
		echo $this->name . "说他的数学成绩是:". $this->name ;
	}
	
	public function write(){
		echo $this->name . "正在写作业!";
	}
	
	public function take(){
		echo $this->name . "拿着一本书.";
	}
}

$stu = new Student();
$stu->name = '张三';
$stu->grade = 100;
$stu->say();
echo '<br>';
$stu->write();
echo '<br>';
$stu->take();

?>

执行结果如下:

在PHP中,字符串之间的连接符是点'.'(英文的点)如:echo "张"."三";输出的结果就是:张三

本文对PHP的基本语法介绍就到到这里,想了解更多的关于PHP相关的请听下回分解!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。