前言
作者简介:不知名白帽,网络安全学习者。
博客主页:不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主
网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan
目录
PHP超级全局变量
PHP $_GLOBALS
PHP $_SERVER
PHP $_REQUEST
PHP $_POST
PHP $_GET
PHP While循环
while 循环
do while 循环
PHP for 循环
for 循环
foreach 循环
输出给定数组的值的循环
输出给定数组键与值的循环
PHP函数
创建PHP函数
PHP函数-添加参数
PHP函数-返回值
PHP魔术常量
__LINE__
__FILE__
__DIR__
__FUNCTION__
__CLASS__
__TRAIT__
__METHOD__
PHP超级全局变量
PHP $_GLOBALS
<?php
/*
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
*/
$x = 15;
$y = 35;
function add()
{
$GLOBALS["z"] = $GLOBALS["x"] + $GLOBALS["y"];
}
add();
echo $z;
?>
PHP $_SERVER
<?php
/*
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
这个数组中的项目由 Web 服务器创建。
*/
echo $_SERVER["PHP_SELF"]; // 当前执行脚本的文件名
echo "<br>";
echo $_SERVER["GATEWAY_INTERFACE"]; // 服务器使用的CGI版本
echo "<br>";
echo $_SERVER["SERVER_ADDR"]; // 当前运行脚本所在服务器IP
echo "<br>";
echo $_SERVER["SERVER_NAME"]; // 运行脚本所在服务器主机名
echo "<br>";
echo $_SERVER["SERVER_SOFTWARE"]; // 服务器标识字符串
echo "<br>";
echo $_SERVER["SERVER_PROTOCOL"]; // 请求页面时通信协议的名称和版本
echo "<br>";
echo $_SERVER["REQUEST_METHOD"]; // 访问页面使用的请求方法
echo "<br>";
echo $_SERVER["REQUEST_TIME"]; // 请求开始时的时间戳
echo "<br>";
echo $_SERVER["HTTP_ACCEPT"]; // 当前请求头accept项的内容
echo "<br>";
echo $_SERVER["HTTP_HOST"]; // 当前请求头中 Host: 项的内容
echo "<br>";
echo $_SERVER["REMOTE_ADDR"]; // 浏览当前页面的用户的 IP 地址
echo "<br>";
echo $_SERVER["REMOTE_PORT"]; // 用户机器上连接到 Web 服务器所使用的端口号
echo "<br>";
echo $_SERVER["SCRIPT_FILENAME"]; // 当前执行脚本的绝对路径
echo "<br>";
echo $_SERVER["SERVER_ADMIN"]; // 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数
echo "<br>";
echo $_SERVER["SERVER_PORT"]; // Web 服务器使用的端口
echo "<br>";
echo $_SERVER["SCRIPT_NAME"]; // 包含当前脚本的路径
echo "<br>";
?>
PHP $_REQUEST
关于html表单的一些知识:HTML 表单 (w3school.com.cn)
<form method="get" action="2.php">
Name: <input type="text" name="testname">
<input type="submit">
</form>
<?php
$test = $_REQUEST['testname'];
echo $test;
?>
PHP $_POST
<form method="post" action="2.php">
Name: <input type="text" name="testname">
<input type="submit">
</form>
<?php
$test = $_POST['testname'];
echo $test;
?>
PHP $_GET
<a href="2.php?subject=PHP&web=STUDY">Test $GET</a>
<?php
echo $_GET['subject'] . " @ " . $_GET['web'];
?>
PHP While循环
while 循环
while 循环将重复执行代码块,直到指定的条件不成立。
while (条件) { 要执行的代码; }
<?php
$test = 1;
while($test <= 5) //只要test小于等于5,循环就会持续运行,循环每运行一次,test就会+1
{
echo "the number is " . $test . "<br>";
$test ++; //后递增。先返回test,然后test+1
}
?>
do while 循环
do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。
do { 要执行的代码; } while (条件);
<?php
$test = 1;
do
{
$test ++; //后递增。先返回test,然后test+1
echo "the number is " . $test . "<br>";
}
while($test <= 5)
?>
PHP for 循环
for 循环
for 循环用于您预先知道脚本需要运行的次数的情况。
for (初始值; 条件; 增量) { 要执行的代码; }
<?php
for($x=1;$x<=5;$x++)
{
echo "数字:" .$x ."<br>";
}
?>
foreach 循环
foreach 循环用于遍历数组。
输出给定数组的值的循环
foreach ($array as $value) { 要执行代码; }
<?php
$x = array("aaa","bbb","ccc"); //数组里面用都好,循环里面用分号。
foreach($x as $value)
{
echo $value . "<br>" ;
}
?>
输出给定数组键与值的循环
foreach ($array as $key => $value) { 要执行代码; }
<?php
$x = array(1=>"aaa",2=>"bbb",3=>"ccc"); //数组里面用都好,循环里面用分号。
foreach($x as $key => $value)
{
echo "key为" . $key . " " . "value为" .$value . "<br>" ;
}
?>
PHP函数
创建PHP函数
<?php
function writeName() /*
1.函数的名称应该提示出它的功能
2.函数名称以字母或下划线开头(不能以数字开头)
*/
{
echo "user";
}
echo "my name is ";
writeName();
?>
PHP函数-添加参数
<?php
function writeName($fname,$punctuation) /*
1.为了给函数添加更多的功能,我们可以添加参数,参数类似变量。
2.参数就在函数名称后面的一个括号内指定。
*/
{
echo $fname . $punctuation . "user";
}
echo "my name is ";
writeName("aaa","-");
?>
PHP函数-返回值
<?php
function add($x,$y)
{
$test = $x + $y;
return $test;
}
echo "3+6=" . add(3,6);
?>
PHP魔术常量
__LINE__
显示文件中的当前行号。
<?php
echo "这里是第" . __LINE__ . "行";
?>
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
<?php
echo "该文件位于" . __FILE__ ;
?>
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
<?php
echo "该文件位于" . __DIR__ ;
?>
__FUNCTION__
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。
<?php
function test()
{
echo "函数名为:" . __FUNCTION__ ;
}
test();
?>
__CLASS__
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
<?php
class test
{
function _print()
{
echo "类的名称:" . __CLASS__ . "<br>";
echo "函数的名称:" . __FUNCTION__ ;
}
}
$t = new test();
$t->_print();
?>
__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
<?php
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld(); // 输出Hello
$o->sayHello(); // 输出World!
?>
__METHOD__
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
<?php
function user() {
echo '函数的名称:' . __METHOD__ ;
}
user();
?>