服务端脚本语言-PHP
1.PHP是什么?
PHP(Hypertext Preprocessor,超文本预处理器) 是一门开源、免费的服务器端脚本语言,专为 Web 开发设计,是目前全球市场占有率最高的后端技术(约 77%+ 网站使用)。
2.PHP基础语法
1.PHP 脚本以 <?php 开头,以 ?> 结尾
<?php
php代码
?>
2.PHP每行代码必须以“;”结束,但如果是最后一行可以省略最后一行的分号“;”
示例对比:
正常写法
<?php
echo "Hello";
echo "World";
?>
最后一行省略分号(合法)
<?php
echo "Hello";
echo "World"
?>
3.PHP对大小写敏感区别
在 PHP 中,所有用户定义的函数、类和关键字(例如 if, else, while, echo 等等)都对大小写不敏感。如下图所有echo都能正确输出:

(图 大小写不敏感输出)
3.PHP注释
3.1单行注释
1. 单行注释(//)
<?php
echo "hello"; // 这是行尾注释
// 这是整行注释
?>
2. 单行注释(#)
<?php
# 这是 # 风格注释
echo "world";
?>
3.2多行注释
1. 多行注释(/* */)
<?php
/*
这是多行注释
可以写很多行
*/
echo "test";
?>
使用注释省略部分代码:
<!DOCTYPE html>
<html>
<body>
<?php
// 你也可以使用注释来省略部分代码行
$x = 5 /* + 15 */ + 5;
echo $x;
?>
</body>
</html>
4.PHP变量
4.1 变量规则
- PHP 变量以
$符号开头,后面跟变量名 - 变量名必须以 字母(a-z、A-Z)或下划线
_开头 - 后面可以跟字母、数字、下划线
- 严格区分大小写
$name、$Name、$NAME是三个不同变量
4.2 局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
4.3 PHP The global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
4.4 static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
5.echo和print_r()
5.1 echo
echo输出单一类型:数字、字符串、布尔等
<?php
echo "Hello World"; // 单个输出
echo "a", "b", "c"; // 多个输出(用逗号分隔)
?>
5.2 print_r()
print_r()输出复合类型:对象和数组
<?php
$arr = ['name' => '张三', 'age' => 18];
print_r($arr); // 直接输出数组结构
-
输出效果(数组):
Array([name] => 张三[age] => 18)
6.超全局变量
其实超全局变量就是个大数组,里面可以装小数组,小数组中可以放值。
6.1 $_GET:

6.2 $_POST



6.3 一句话木马
在搭建的网页上,上传事先准备好的payload,上传成功后,访问该目录。
发现无内容:

打开蚁剑,输入url和连接密码,测试连接,回显连接成功。

点击添加,获取该网站的根目录。

(本文PHP大部分内容是来自教程网站:https://www.w3ccoo.com/)
(本文所讲的一句话木马是在自己搭建的靶场进行测试的,请勿在真实网站进行测试,遵守网络安全法规)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)