当前位置: 首页 > news >正文

零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)

经过上期的配置,我们已经有了php的开发环境,编辑器我们继续使用VScode,如果是新来的朋友可以看这期文章来配置VScode

零基础学前端-传统前端开发(第一期-开发软件介绍与本系列目标)(VScode安装教程)_vscode启动前端详细步骤-CSDN博客

(本系列不过多介绍php的vscode插件,没有插件也是可以用的,只是打代码的速度慢一点)

接下来我们来了解php的语法

看过我之前网络安全-皮卡丘靶场的朋友应该短暂接触过,所以系列也是,我们玩个大的,我们用网络安全的角度接入,既可以方便大家了解本系列的php语法,也对不了解网络安全的朋友拓展一些php防护的重要性

先来看一个php木马


<?php  @eval($_POST['shell']); ?>

详细介绍木马可以看以下文章(只是拓展,不看也不影响下面内容的了解)

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)_yakit web文件上传-CSDN博客

首先可以看到php开始的位置是<?php,结尾是?>,文件后缀为.php

这就是php的结构


<?php
// PHP 代码
?>

以<?php打头,?>结尾这就是php的语法结构,我们要了解的是就是中间的内容(注意每段完成后以;结尾)

我们先来看一个示例

<!DOCTYPE html>
<html>
<body><h1>PHP</h1><?php
echo "Hello World!";
?></body>
</html>

是不是很像html格式

(若想了解看以下文章,不看也不要紧,只是拓展)

零基础学前端-传统前端开发(第二期-HTML介绍与应用)(XSS防御)-CSDN博客

我们来看一个html文件


<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body></body></html>

很明显多多少少还是有差别的

为什么呢

这时候我们就要了解一些历史

PHP 最初(1994 年由 Rasmus Lerdorf 设计)就是为了动态生成 HTML 页面而生的。它的语法被设计为可以直接嵌入到 HTML 中,通过特殊的标记(如 <?php ... ?>)区分服务器端代码和静态 HTML。

看不懂就看下面通俗点的

以cosplay为例

想象一个Coser(比如扮演初音未来):

她穿着蓝色双马尾假发、短裙、长靴——这些一眼就能看到的服装,就是HTML

无论谁来拍照,看到的都是这套固定造型,不会变(就像静态网页)。

而扮演刺客信条的"大流士"就像php

它手里面的袖剑平时可以隐藏起来(PHP在服务器端运行),用的时候突然弹出来(比如生成不同的HTML内容)

所以

HTML = 定妆照里的 Cosplayer,静态、美就完事;
PHP = 藏在 Cosplayer 衣服里的袖剑,只在(标签)打开时才现身搞动态特效。

所以我们还可以知道后缀换成php,我们可以直接在html文件里加php内容(注意:必须后缀为php的情况下html里php的内容才能显示)

接下来我们像html一样用浏览器打开看看

可以看到直接是文件内容而不是运行后的内容

但是为什么html就可以直接打开呢

还是因为HTML 是静态文件,PHP 是动态脚本,需要“翻译”才能变成浏览器能看懂的东西

所以我们就要用服务器运行它才行,可以运行它的软件有很多,比如XAMPP,亦或者之前网络安全搭建皮卡丘靶场的时候我们用的phpstudy

但是我们接下来只用php内置的服务器来,首先,直接用内置服务器不用多余了解其它东西,方便不了解的朋友了解php很简洁,其次用先内置服务器,之后用其它软件时,出问题也好解决,至少知道问题(注:内置服务器只能单个启动,无法直接启动整个文件夹的业务,只适合学习)

那么怎么启动呢

首先,在包含有我们新建php文件的文件夹中打开cmd

然后输入

php -S localhost:8000

(有问题就换端口,说明端口被占用了,而且记住url栏里加入php文件名称)

可以看到成功了

至此,我们了解了php的结构语法,接下来的内容就是对php"中间"的了解了,如有问题欢迎大家指正

http://www.xdnf.cn/news/1192051.html

相关文章:

  • 力扣112. 路径总和
  • GIS地理信息系统建设:高精度3D建模
  • 【愚公系列】《MIoT.VC》003-构建基本仿真工作站(组件的属性、行为、视频展示)
  • 基于匿名管道的多进程任务池实现与FD泄漏解决方案
  • 智慧水库管理平台数据清洗实施方案
  • C++对象模型
  • linux练习题
  • linux内核电源管理
  • JavaWeb(苍穹外卖)--学习笔记11(Filter(过滤器) 和 Interceptor(拦截器))
  • JavaScript中.splice()的用法
  • 从零开始大模型之编码注意力机制
  • HTML5 Canvas 绘制圆弧效果
  • 适用于5V/12V低输入的负载点电源应用20V/6A单片式双通道同步降压调整器
  • 面试150 IPO
  • C#其他知识点
  • 实验-OSPF多区域
  • ubuntu下docker安装thingsboard物联网平台详细记录(附每张图)
  • KTO:基于行为经济学的大模型对齐新范式——原理、应用与性能突破
  • 栈----3.字符串解码
  • C语言函数精讲:从入门到精通( 指针(5))
  • 秋招Day20 - 微服务 - 概念
  • kafka的消费者负载均衡机制
  • 嵌入式硬件篇---有线串口通信问题
  • OpenCV图像梯度、边缘检测、轮廓绘制、凸包检测大合集
  • IntelliJ IDEA 中左上方未显示项目根目录问题
  • 数据库索引详解:原理、设计原则与应用场景
  • 渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
  • Word文档转HTML查看器(字体颜色、字体背景、超链接、图片、目录等全部转换为html),统计Word文档段落数量、图片数量、表格数量、列表数量
  • HTML5元素相关补充
  • 小架构step系列26:Spring提供的validator