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 中,所有用户定义的函数、类和关键字(例如 ifelsewhileecho 等等)都对大小写不敏感。如下图所有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/

本文所讲的一句话木马是在自己搭建的靶场进行测试的,请勿在真实网站进行测试,遵守网络安全法规

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐