PHP 基础_php fetch_all id key(1)

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。

(三)数据库连接的广泛性

PHP可以与很多主流的数据库建立起连接,如MySQLODBCOracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。

(四)面向过程和面向对象并用

在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。

优点

(一)流行,容易上手

PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。

(二)开发职位很多

在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。

(三)仍然在不断发展

PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。

(四)可植入性强

PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。

(五)拓展性强

PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。

缺点

(一)PHP的解释运行机制

在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是静态成员,都会在页面执行完毕后被清空。

(二)设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从 C++Java学来的。

(三)对递归的不良支持

PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。


PHP 语法

<?php   //注意?跟PHP之间没有空格
echo “Hello World !”; //每句以 ; 结束
?>


注释:

//…单行注释

#… 单行注释

/*…*/ 多行注释


变量:

**$**array=NAME;    变量名必须以字母或者下划线开始,不能用数字开头,中间不能有空格! 大小写敏感!

$x=5;  $X=7;  输出为不同结果

<?php $a = 1; $A = 2; echo $a . "
"; echo $A; ?>


局部变量

<?php $a=1; //全局变量 function test() { //声明一个函数,名字为 test     $a=15; //函数内的变量,为局部变量     echo "内部输出结果:".$a;     } test(); echo "
"; echo "外部输出结果:".$a; ?>


<?php $a=1; function test() { //声明一个函数,名字为 test     global $a; //在函数内声明并引用外部变量,注意这里是小写 global     echo $a;     echo "
"; } test(); //使用函数 echo $a; ?>


<?php $a=10; $b=20; $c=30; function test() {     $a=100; **$GLOBALS**['a']=$GLOBALS['b']+$GLOBALS['c']; **//引用全局变量,这里的 GLOBALS 必须大写**   echo $a."
"; } Test(); //函数名不区分大小写  echo "
"; echo $a; ?>


<?php function test() {     static $a = 0; **//静态作用域,保留变量值**     echo $a . "";     $a++; } test()**;//不使用static的话,每次输出都是 0** echo "
"; test(); echo "
"; test(); ?>


parameter 参数作用域
<?php $a = 10; $b = 20; function test() {     $a = 30;     $b = 40;     $c = $a + $b;     echo  "函数内运算值:".$c;     echo "
"; } test(); $c = $a + $b; echo "函数外运算值:".$c; ?>


echo 和 print 的区别:

echo “123”,“456”,“789”;//能够连续输出多个字符串

print “123”,“456”;  //输出错误


换行符:

echo “
”;

echo “\n”;

echo PHP_EOL; //换行符


返回变量类型: var_dump

<?php $a = "1111"; $b = 123; $c = null; echo var\_dump($a) . "
"; echo var\_dump($b) . "
"; echo var\_dump($c) . "
"; $d = array('a', 1, abc); //数组 echo var\_dump($d) . "
"; $e = true; echo var\_dump($e); ?>


<?php $text1="ni hao"; $text2="hahaha"; echo $text1**.**"        ".$text2."
"; //引用多个变量用 点 **. (英文)**连接     为空格 $a = strlen($text1);//计算字符串长度数 echo $a; ?>//空格也算作一个字符


强引用和弱引用

<?php $text1 = "ni hao"; echo "$text1" . "
";**// “ ” 双引号输出会显示变量值** echo '$text1';**// ‘’ 单引号会显示变量名本身** ?>


自增自减输出

<?php $x = 10; echo ++$x;//先自增后输出 echo "
"; $a=15; echo --$a . "
";//先自减后输出 $y = 20; echo $y++ . "
";//先输出后自增 $b=30; echo $b--;//先自增后输出 ?>


if 条件判断

<?php $x = 10; $y = 20; if ($x > $y) {//判断 x 和 y 的大小,如果满足 $x > $y 就输出 true      echo "true"; }else if($x==$y) {//else if 如果上面的判断不满足,再次判断  $x==$y  是否相等 ,如果满足就输出  $x."等于"$y;     echo $x."等于"$y; } else {//如果上面的判断都不满足就输出 false     echo "false"; } ?>


<?php $x= (3>4)? "true":"false";//三元运算符 echo $x; ?>


switch 判断

<?php $a="abc"; switch ($a) {     case 'red':         echo "red";         break; //跳出整个循环体,continue跳出本次循环体,继续执行后面的循环体。     case 'green':         echo "green";         break;     case 'black':         echo "black";         break;     default:         echo "not color"; } ?>


数组

<?php $cars = array("BMW", "BinLi", "大众"); echo "I like " . "$cars[0]", "  ", "$cars[1]", "  ", "$cars[2]"; ?>

<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大众"; echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>

<?php $cars = array(); $cars[0] = "BMW"; $cars[1] = "BINlix"; $cars[2] = "大众"; echo count($cars) . "
";// count 返回数组长度 echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>


count 获取数组的长度

var_dump() 返还数据类型

strlen(); 返回字符串长度

array(); 创建数组

$arrayname=array(‘name’ =>“icq”,‘age’=>20,‘gender’=>true); //关联型数组

echo $arrayname[“name”];

$arrayName=array(‘1’,“zhangsan”,20,false,“beijingchangping”);//数字型数组

echo $arrayName[3]; //布尔型 true 打印显示1


for 循环 遍历数组:

<?php

$cars = array(“BMW”, “BinLi”, “大众”);

a r r l e n g t h = c o u n t ( arrlength = count( arrlength=count(cars);

for ($x = 0; $x < $arrlength; $x++) {

echo c a r s [ cars[ cars[x] . “
”;

}//只输出值

?>


<?php

$cars = array(“BMW”, “BinLi”, “大众”);

a r r l e n g t h = c o u n t ( arrlength = count( arrlength=count(cars);

print_r($cars);//数据类型,下标值,值都打印出来

?>


关联数组:
<?php $age = array("gao" => "30", "li" => "20", "zhang" => "10"); echo "gao is    " . "  " . $age['gao'] . "  " . "     years old."; ?>


关联数组2:
<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; print\_r($age); ?>


多维数组

<?php $cars = array(     array("111", 100, 50),     array("222", 200, 100),     array("333", 300, 150), ); echo $cars[1][0]; ?>


<?php $age = array(); $age["sun"] = ["20"]; $age["liu"] = ["30"]; $age["zhang"] = ["40"]; // print\_r($age); foreach ($age as $key => $value) {     echo "name is     " . $key . "   old    " . $value . "
"; } ?>


排序:

<?php $cars = array("Blinli", "wzida", "muling"); $x = sort($cars); echo $x; print\_r($cars); ?>

<?php $cars = array("Blinli", "wzida", "muling"); $x = rsort($cars); echo $x; print\_r($cars); ?>



$GLOBALS — 引用全局作用域中可用的全部变量

<?php $x = 10; $y = 29; function add() {     // global $x, $y;     // $z = $x + $y;     // echo $z;     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];     echo $GLOBALS['z']; } add(); ?>


PHP $_REQUEST 用于收集 HTML 表单提交的数据

name:


<?php $name = $\_REQUEST['name']; echo $name; ?>


循环:

<?php $a = 0; while ($a <= 10) {     echo "number is :" . $a . "
";     $a++; } ?>


do while 循环:

<?php $i = 0; do { //先循环     $i++;     echo "number is :" . $i . "
"; } while ($i < 5);//再判断 ?>


<?php function add($x, $y) {     $z = $x + $y;     return $z;     // echo $z; } // add(5, 15); echo "1+16" . "=" . add(1, 16); ?>


函数:

<?php function add() {     $x = 10;     $y = 20;     $z = $x + $y;     echo $z; } add(); ?>

<?php function add($x, $y) {     $z = $x + $y;     echo $z; } add(5, 15); ?>
类和对象: 类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。 对象 − 是类的实例。
<?php class Person { //定义一个类,名称为 Person 使用驼峰命名法,不能用数字开头,类似于变量的命名方式。     var $name; //定义一个变量,值为空     function say() { //定义一个函数     echo "my name is ".$this->name;                 } } $xm=new Person; //实例化对象,具体的使用方式 $xm->name="小明"; //对象属性的赋值 $xm->say(); //访问对象的方法 ?>


超级全局变量:

<?php $string = "123"; //变量 define("DEMO", true); //常量 print\_r($GLOBALS); //超级全局变量 ?>
$_REQUEST 可以接收 GET POST 发送的数据包


$_SERVER[‘PHP_SELF’]; //显示头部信息

username:

password:

<?php echo "提交的内容:   " . @$\_POST["name"] . @$\_POST["password"] . "" ?>

//在PHP中通过打印函数引入我们的HTML+CSS+JS


PHP 连接MYSQL数据库

1、mysql PHP<5.5版本 2012年后不建议使用,安全性差

2、mysqli      mysql的扩展,mysql的升级版,安全性高,只能用于操作mysql数据库

一、面向对象的方法 NEW

二、面向过程的使用方法

3、PDO      PHP DATA OBJECT 目前支持链接数据库类型12种,安全性高,基于面向对象的使用方式。


<?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()该函数保存了连接数据库的错误信息    \*/ } /\*create table students( uid int(15) not null auto\_increment, name varchar(50) not null, gender char(2), message text, primary key(uid) )\*/ $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); ?>


解决乱码:

echo “”; //指定字符集

或者:

header(“Content-Type:text/html;charset=utf-8”);


PHP 集合 HTML
<?php // echo ""; //指定字符集 header("Content-Type:text/html;charset=utf-8"); echo '         name:         psswd:              ';   $name = @$\_POST['name']; //$\_POST 对应 form method="POST" $pwd = @$\_POST['pwd']; //接收数据   if ($name != "" && $pwd != "") { //判断当前提交的数据是否为空,不为空的情况下执行下面的代码     echo "UserName is : " . $name . "
";     echo "PassWord is : " . $pwd; } ?>

(isset(KaTeX parse error: Expected 'EOF', got '&' at position 7: name) &̲& isset(pwd))

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值