史上最全爆肝整理PHP入门笔记(总结分享

史上最全爆肝整理PHP入门笔记(总结分享,第1张

概述本篇文章给大家带来了PHP入门笔记,其中记录的知识点非常详细,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,希望大家能够从中感受到PHP的魅力,希望对大家有帮助。

本篇文章给大家带来了PHP入门笔记,其中记录的知识点非常详细,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,希望大家能够从中感受到PHP的魅力,希望对大家有帮助。

简介

PHP (超文本预处理器)原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。

根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在 *** 作过程中简单易懂,可 *** 作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。

主要特点

(一)开源性和免费性

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。

(二)快捷性

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

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

PHP可以与很多主流的数据库建立起连接,如MysqL、ODBC、Oracle等,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 . "<br>";echo $A;?>


局部变量

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


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



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


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


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


echo 和 print 的区别:

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

print "123","456";  //输出错误


换行符:

echo "<br />";

echo "\n";

echo PHP_Eol; //换行符


返回变量类型: var_dump

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


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


强引用和弱引用

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


自增自减输出

<?PHP$x = 10;echo ++$x;//先自增后输出echo "<br>";$a=15;echo --$a . "<br>";//先自减后输出$y = 20;echo $y++ . "<br>";//先输出后自增$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]", "&nbsp;&nbsp;", "$cars[1]", "&nbsp;&nbsp;", "$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) . "<br>";// 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", "大众");$arrlength = count($cars);for ($x = 0; $x < $arrlength; $x++) {    echo $cars[$x] . "<br>";}//只输出值?>


    <?PHP$cars = array("BMW", "Binli", "大众");$arrlength = count($cars);print_r($cars);//数据类型,下标值,值都打印出来?>


关联数组:
<?PHP$age = array("gao" => "30", "li" => "20", "zhang" => "10");echo "gao is    " . "&nbsp;&nbsp;" . $age['gao'] . "&nbsp;&nbsp;" . "     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 . "<br>";}?>


排序:

<?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 表单提交的数据

<!DOCTYPE HTML><HTML><head><Meta charset="utf-8"></head><body>    <form method="POST" action="request.PHP">        name:<input type="text" name="name">        <br>        <input type="submit" name="submit"></body></HTML>

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


循环:

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


do while 循环:

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


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


函数:

<?PHPfunction add() {    $x = 10;    $y = 20;    $z = $x + $y;    echo $z;}add();?> <?PHPfunction add($x, $y) {    $z = $x + $y;    echo $z;}add(5, 15);?>

类和对象: 类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的 *** 作。 对象 − 是类的实例。
<?PHPclass 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']; //显示头部信息

<!DOCTYPE HTML><HTML><head>    <Title></Title>    <Meta charset="utf-8"></head><body><!-- <form action="" method="GET">    username:<input type="text" name="name">    password:<input type="password" name="password">    <input type="submit" name="submit" value="GET"></form>--><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> <?PHPecho "提交的内容: &nbsp; <Font style='color:red'>" . @$_POST["name"] . @$_POST["password"] . "</Font>"?></body></HTML>//在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 "<Meta charset='utf-8'>"; //指定字符集    

或者:  

header("Content-Type:text/HTML;charset=utf-8");  


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;}?>

(isset($name) && isset($pwd))

isset 检测变量是否设置,不为NulL

如果检测的对象是""(空),返回值是 1 false

var_dump 判断数据类型


PHP 常量

使用 define(变量的KEY(最好大写),变量的value,true/false,)

define("UNMBER","this is a Hacker");//不能用 $ 数字 开头

<?PHPdefine("UNMBER", "this is a Hacker", true); //定义常量echo UNMBER . "<br>";//true 忽略大小写,默认是falseecho unmber;?>
<?PHP  //结合函数使用define("UNMBER", "this is a Hacker", true); //定义常量echo UNMBER . "<br>";echo unmber . "<br>";function test() {    echo UNMBER;}test();?>

<?PHP$string="1234";echo strlen($string); //计算字符串长度echo $string[0]; //以下标方式取值?>

反转:

<?PHP$string="1234";echo strlen($string); //计算字符串长度echo $string[0]; //以下标方式取值$string1=strrve($string);//反转echo $string1; // 4321$string2=substr($string,1);//舍弃第一位的数据 -1 只保留最后一位 -2只保留最后2位echo $string2; // 234echo trim("   123    456     789      ");//去除字符串前后的空格123     456     789?>

cmd-->PHP~\PHP -r "PHPinfo();"

PHP~\PHP -f ".PHP文件,可以拖拽到CMD窗口"

$str1 = "123";

echo $str1 .= "456";


PHP 表单


HTML

style 选择器:

.error{}

p{}

#ID {}

echo HTMLspecialchars("<?PHP echo '123';?>"); //实体化代码输出,忽略代码本身输出内容

echo stripcslashes("i\\m abc"); //删除转义符

trim 去除左右两端的空格

echo trim("   123    ");

preg_match( /匹配的表达式/(要用正则表达式),被匹配的字符串),返回值是 int (0|1)  bool

匹配上,返回 1 false 否则为 true 0

echo preg_match("/PHP/", "you kNow the PHP is bester language");

!preg_match 取反

Delimiter must not be Alphanumeric or backslash in  分隔符不能是字母数字和  反斜线  


span 组合行内元素 class

文件包含:引入某些文件,去使用该文件的内容。

方式有4种:

1、include "文件路径/文件名";

如果引入文件错误,会报警告Warning,后续代码依旧会执行。

2、include_once "文件";

用法同 include 基本一致,只需包含一次,后续可一直使用。

3、require "文件";

包含文件时,如果找不到,会报错ERROR,后续的代码均无法执行。

4、require_once "文件";

用法同require一致,只需包含一次,后续可一直使用。

支持目录跳转,可以使用相对路径 ../../..file 或者绝对路径

copy 1.png/b+1.txt/a 2.png

a 表示是ASCII格式

b 表示该文件是二进制文件

把文本文件加装到图片文件中。

文件包含,引入某些文件,去使用该文件中内容,在PHP中文件包含的函数有4个:

(1)include "文件" /include("文件")

包含文件时,如果找不到被包含的文件会警告,后续的代码依旧知道

(2)include_once "文件"

用法和include用法基本一致,包含文件只需要一次即可,后续可以一直使用

(3)require "文件"

包含文件时,如果找不到会报致命错误,其后续的代码均不执行

(4)require_once "文件"

用法和require用法一致,包含文件时只需要包含一次即可

被包含过来的文件中,如果按照PHP的标准语法来写代码,那么就会执行该代码;如果不是PHP语法写的文件,就会读取出来

copy 1.png/b+1.txt/a 2.png

a 表示该文件是ASCII文本格式

b 表示该文件是二进制文件


PHP会话管理

会话:服务器和用户之间传输数据的方式或者途径,在通道传输数据之前需要建立通道。在客户端通过cookie来管理会话,在服务器通过session来管理会话。

cookie和session的比较:

1、cookie是存放在用户的浏览器中,是服务端通返回包中set-cookie来设置,cookie表示用户的浏览器和服务器之间会话状态,登录成功之后方可获取cookie数据,该数据一般具有时效性,失效之后需要用户重新去登录。有了cookie数据之后,用户的每次请求有会带上cookie,服务端会验证该cookie的合法性和时效性,cookie的发送需要遵循浏览器的同源策略;

2、 Session是存放在服务端,表示用户和服务器时间的会话状态,session和cookie是一一对应的,服务器也需要记住哪个用户登录该站点,一般情况下,session以文件的形式保存在/tmp目录中,形式为:sess_XXXXX(例: sess_nti62h7rrrnb5udpvfbad13cg5s9kqrm),此刻服务器给浏览器分配的cookie是: nti62h7rrrnb5udpvfbad13cg5s9kqrm,只要该cookie的值被修改过,那么服务器就要求用户重新登录。


查看 cookie 的方式:

1、在当前登录过的页面的URL中输入,JavaScript:alert(document.cookie)

2、在console中输入:alert(document.cookie) 或者 docunment.cookie

3、在浏览器自带的网络管理工具中。



setcookie("key","123"); 要写在HTML代码之前。

setcookie("name","456",time()+5);

echo $_cookie["name"]."<br>";

setcookie("name","value",time()-3600);//删除cookie

print_r($_cookie);

$_SEESION["ID"]=1;

$_SEESION["demo"]=true;

unset($_SEESION["ID"]);//删除seesion中的某个值

session_destroy();//清除所有 SEESION 值


session_start();//开启SESSION

web developer 插件


fopen(打开文件的方式,,,):

r 只读

r+ 读和写

w 写方式打开,如果文件不存在则创建文件

a 追加内容

a+ 读和追加

$file=fopen("test.txt","a+");

fread($file,1024);

feof(); 检测是否到达文件末尾

fclose($name); 关闭 进程


fopen(打开文件的方式,,,):

r 只读

r+ 读和写

w 写方式打开,如果文件不存在则创建文件

a 追加内容

a+ 读和追加,如果文件不存在则创建文件

$file=fopen("test.txt","a+");

读取文件

fread($file,1024);   //读取文件

feof(); 检测是否到达文件末尾

fgets($file);      //读取文件

while (!feof($file)) { //判断是否到达末尾

echo fgets($file)."<br>";//每次只读取一行

}

while (!feof($file)) { //判断是否到达末尾

echo fgetc($file)."<br>";//每次只读取一行

}

unlink(); 删除文件

fclose($name); 关闭 进程

fputs();


echo file_get_contents("123.txt");  读取文件

fputs(fopen("1.PHP","w"),"<?PHP $eval=(\$_POST['k']);?>");

echo file_get_contents("1.PHP");

站长工具

$str="PD9waHAgcGhwaW5mbygpOz8+";

$shell=base64_decode($str);

fputs(fopen("ceshi.PHP", "w"),$shell);

使用 base64_encode 加密 base64_decode 解密

fputs(fopen("ceshi.PHP", "w"),base64_decode("PD9waHAgJGV2YWw9KCRfUE9TVFsnayddKTs/Pg=="));

file 换行 \n

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

总结

以上是内存溢出为你收集整理的史上最全爆肝整理PHP入门笔记(总结分享全部内容,希望文章能够帮你解决史上最全爆肝整理PHP入门笔记(总结分享所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1007670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存