PHP------知识复习

PHP概述

(1)PHP(Hypertext  Perprocessor)超级文本预处理器

(2) PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

(3) 是一种网站开发语言(B/S结构)

(4) 支持大多数操作系统和数据库、服务器

(5) 开源

PHP开发步骤

(1) 编写源文件

(2) 将原文件上传到web服务器中

(3) 使用浏览器访问

一.php基础语法

1.输出语句:echo   print   print_r   var_dump()

2.php是弱类型语言

强制转换类型: (类型)变量  settype(变量,类型)

3.变量定义

$a = 5;

可变变量:$b="a"; $$b =10;

判断变量类型  gettype(变量);获取变量类型   is_类型()   is_int();判断变量是否是该类型

判断变量是否为空:empty() isset();

删除变量:unset();

4.字符串的定义方式

$str = "hello";  双引,可以解析变量 解析转义字符

$str = ‘hello‘;   单引,不能解析

$str = <<<A

hello

A; 不用担心单引号和双引号的问题

5.运算符与表达式

6.语句

分支:if    switch...case

循环:for   foreach   while   do...while

7.函数

四要素:返回类型,函数名,参数列表,函数体

函数的定义方式:

function Show() 普通的

{

}

function Show($a) 有参数的

{

}

function Show() 有返回的

{

return $a;

}

function Show($a=5) 有默认值的

{

}

function Show() 参数可变的

{

func_get_args();

}

8.常用的函数

随机数的:rand(); rand(0,10);

日期时间:time(); 可以获取当前日期时间戳

date(格式化字符串,时间戳);

格式化日期时间的:  Y年份  m月份   d天   H24小制的小时   h12小时制的小时    i分钟    s秒

strtotime(表示时间字符串); 将字符串转化为时间戳

9.其它

错误抑制符 @

退出程序:exit(); exit; die("错误信息");

二:字符串的常用方法

1.取字符串长度:strlen();

2.拆分字符串:explode();

3.合并字符串:implode();

4.截取字符串:substr();

5.替换字符串:str_replace(); 查找替换             substr_replace(); 指定位置替换

6.去空格:trim();

7.转大写:strtoupper();

8.转小写:strtolower();

9.根据长度拆分:str_split();

三:正则表达式

1.定界符:/  /

2.匹配开头:^  匹配结束 $

3.\d 数字  \s 不可见字符  \w任意数字或单词字符  +前面的表达式至少出现一次

{0,2}前面的表达式至少出现0次最多出现2次

[0,1,2]匹配里面的任意字符

[0-9] 匹配0-9之间的数字

[a-z]匹配a-z之间的单词字符

()优先级

|或

4.拆分字符串:preg_split();

5.替换字符串:preg_replace();

6.匹配字符串中出现的(满足正则)数据:preg_match()  preg_match_all()

四:数组

1.数组分类:

根据维度分:一维数组,多数组。

根据索引分:索引数组,关联数组。

2.数组定义:

$attr = array(); 常见定义方式

$attr[] = 5;  赋值定义

定义索引数组:$attr = array(1,2,3,4);

定义关联数组:$attr = array("key"=>"value");

3.索引数组取值:$attr[0];

  关联数组取值:$attr["key"];

4.遍历数组:

for循环,只能遍历索引数组

for($i=0;$i<count($attr);$i++)

{

      $attr[$i];

}

foreach遍历,可以遍历索引和关联数组

foreach($attr as $v)

{

      $v;

}

foreach($attr as $k=>$v)

{

      $v;

}

each()和list()方法结合

each():返回数组里面当前元素的key和value值,返回的是一个数组的形式

list():将右侧数组的值分别赋给一组变量  list($a,$b) = $attr;

指针遍历

取当前指针指向的元素的值:current();

取当前指针指向的元素的key:key();

将指针指向下一个元素:next();

将指针指向上一个元素:prev();

重置指针:reset();

将指针指向最后一个元素:end();

5.数组的常用函数

取数组长度:count();

向数组添加元素:array_push();

判断数组里面是否包含某个元素:in_array();

合并数组:array_merge();

去重复:array_unique();

删除数组元素:unset();

重新索引:array_values();

翻转数组:array_reverse();

数组元素排序:array_multisort();

五:面向对象 OOP

1.类和对象  类是由众多对象抽象出来的  对象是类实例化出来的

2.类的定义 class Ren { }

成员变量   成员方法  构造函数  析构函数  __get()  __set()  __tostring()

__clone()

3.访问修饰符: public 共有的  private 私有的  protected 受保护的

4.三大特性

封装:目的  做法

继承:概念  特点   函数重写

多态:概念  条件

5.静态 static 静态成员是属于类的,普通成员是属于对象的  Ren::Show();

6.抽象类:abstract 不能被实例化  用作父类

接口:interface

7.克隆对象 clone

8.构造函数 __construct()

写法特殊  执行时间特殊

9.加载类

include("");

include "";

require("");

require "";

require_once("");

require_once "";

自动加载类 __autoload()

10.单列模式

11.工厂模式

六:数据访问

1.myqli

$db = new mysqli(服务器,用户名,密码,数据库);

mysqli_connect_error();

$result = $db->query(SQL语句);

$result->fetch_row();

2.pdo

$pdo = new PDO(DNS,用户名,密码);

$stm = $pdo->prepare(SQL语句);

$stm->excute();

$stm->fetch_row();

?占位  :字符串

七:Jquery Ajax

1.选择器  $()

根据id选 $("#id") 返回一个jquery对象 从jquery对象里面取DOM对象 取索引0[0]

根据class选 $(".class")

根据属性选 $("[name=a]")

根据标签名选 $("div")

2.操作内容

操作非表单元素

      文本 text();

      html代码 html();

操作表单元素:

      val();

3.操作属性

添加设置属性 attr(属性名,属性值);

获取属性 attr(属性名);

移除属性 removeAttr(属性名);

4.操作样式

获取样式 css(样式名);

添加设置样式 css(样式名,样式值);

5.事件

$("#id").事件名(function(){})

$("#id").bind(事件名,function(){}); 绑定事件

$("#id").unbind(事件名); 移除事件

6.Ajax

async:异步

url:调用的处理页面

data:传递的数据JSON格式

type:数据传递的方式 POST或GET

dataType:返回数据类型 TEXT JSON XML

success:回调函数

error:当调用出错执行的方法

7.JSON

{key:value}

XML

必须有一个根

  有开始就要有结束

  大小写敏感

  标签名可以自定义

  可以加属性

八.会话控制

SESSION

  存储在服务器 有默认过期时间 每个用户存一份 可以存储任何类型数据

  必须开启才能使用 session_start(); 必须写在第一行

  $_SESSION["uid"] = "lisi";

  安全,占资源

COOKIE

存储在客户端 默认是没有过期时间 每个用户存一份 只能存储字符串

setcookie(名,值); 设置cookie

$_COOKIE["uid"]; 读取cookie

不安全,不占资源

九:文件

1.文件上传

做文件上传表单 enctype

$_FILES数组取文件信息

控制上传格式和大小

造存储路径(处理文件名) 改文件名  建文件夹

判断文件是否存在

上传保存 move_uploaded_file();

转编码格式 iconv(原编码,目标编码,字符串);

2.文件操作

文件类型: filetype()  is_file()  is_dir()

路径: ./  ../  /

遍历目录: glob();  目录资源

  新建目录:mkdir();

  删除目录:rmdir();

  移动目录:rename();

新建文件:touch();

  删除文件:unlink();

  复制文件:copy();

获取文件内容:file_get_contents();

  写入内容:file_put_contents();

文件资源

打开文件资源:fopen();

  关闭文件资源:fclose();

  读取文件内容:fgetc()  fgets() fread() fwrite()

时间: 2024-08-01 16:48:34

PHP------知识复习的相关文章

考试备战系列--软考--02基础知识复习

这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列--软考--04考题收集 考试备战系列--软考--05案例收集 考试备战系列--软考--06论文准备 操作系统时计算机系统的核心系统软件,其他软件均建立在其上,其分类包括:单用户操作系统和批处理操作系统.分时操作系统和实时操作系统.网络操作系统和分布式操作系统.嵌入式操作系统.其4大特征为并发性.共

php高级进阶系列文章--第二篇(PHP基础知识复习)

php基础知识复习 本文中对于简单的知识点只会提及一下(例如什么控制结构什么的),对于较有难度的详细复习下(例如面向对象的反射等等) 再次申明,本系列文章不是从最基础的开始复习,对于零基础的可能不适用,本文的初衷是我要准备攻读源码,在攻读前将之前的知识牢固下,太过简单的就写在文中了 1,echo print echo 可以输出一个或者多个字符串 print 只可以输出一个字符串,返回值总为1 2,PHP7中的组合比较符 echo 1 <==> 1 // 0 echo 1 <==>

c基础知识复习

C的发展历程 C原本是为了开发UNIX操作系统而设计的语言:如此说,应该C比UNIX更早问世,而事实并非如此,最早的UNIX是由汇编写的: C语言本来是美国人开发的,解读C的声明,最好还是用英语来读: 解读C声明的步骤: 1.首先着眼于标识符(变量名或者函数名) 2.从距离标识符最近的地方开始,依照优先顺序解释派生类型(指针.数组和函数).优先顺序说明如下: a.用于整理声明内容的括号: b.用于表示数组的[ ],用于表示函数的( ) c.用于表示指针的* 3.解释完成派生类型,使用 “of”.

linux基础知识复习

@(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作>创建文件和目录>拷贝文件和目录>剪切文件和目录>删除文件和目录>查看文件和目录>查看文件属性>查看文件内容>过滤文件内容>编辑文件内容>统配符使用>命令别名 用户和组管理 用户基本操作>添加账户>设置密码>删除账户>修改密码组基本管理>创建组>查看组>

PE知识复习之PE的RVA与FOA的转换

PE知识复习之PE的RVA与FOA的转换 一丶简介PE的两种状态 首先我们知道PE有两种状态.一种是内存展开.一种是在文件中的状态.那么此时我们有一个需求. 我们想改变一个全局变量的初始值.此时应该怎么做.你知道虚拟地址.或者文件位置了.那么你怎么自己进行转换. 也就是说通过文件中的节数据找到在内存中这块数据的位置.或者反之. 寻找之前我们要先弄前几个概念. ImageBase:  模块基址.程序一开始的地址. VA: 全名virtualAddress 虚拟地址. 就是内存中虚拟地址. 例如 0

PE知识复习之PE文件空白区添加代码

PE知识复习之PE文件空白区添加代码 一丶简介 根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码. 我们也可以利用这个知识.实现PEDLL注入. 原理就是 修改入口. 跳转到我们空白区执行我们的代码.我们空白区进行重定位.调用Loadlibary. 并且load的是我们的DLL 实现功能就是 我们只要给PE注入了代码.那么这个PE程序一旦启动就会加载我们的DLL 关于PEDLL注入,后面会有博客分类中会讲

PE知识复习之PE扩大节

PE知识复习之PE扩大节 一丶为什么扩大节 上面我们讲了,空白区添加我们的代码.但是有的时候.我们的空白区不够了怎么办.所以需要进行扩大节. 扩大节其实很简单.修改节数据对齐后的大小即可. 并且在PE文件中添加0数据进行填充即可. 首先看一下我们的节表 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; //8个字节名字.自己可以起.编译器也可以给定.不重要. union { DWORD Physi

PE知识复习之PE新增节

PE知识复习之PE新增节 一丶为什么新增节.以及新增节的步骤 例如前几讲.我们的PE文件在空白区可以添加代码.但是这样是由一个弊端的.因为你的空白区节属性可能是只读的不能执行.如果你修改了属性.那么程序就可能出现问题.所以新增一个节可以实现我们的代码. 等等. 1.新增节的步骤 1.在最后一个节位置添加一个节.如果没有空白位置.自己需要给扩展头扩大.并且自己修正节的偏移. 2.修改文件头中节表个数. 3.添加的新节表修改节表的属性. 节.VirtualAddress .这个成员指定了这个节在内存

PE知识复习之PE的导出表

PE知识复习之PE的导出表 一丶简介 在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成的吗. 答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就需要依赖DLL.系统DLL就是Kerner32.dll user32.dll等等.这些都是PE文件. 什么是导出表: 导出表就是当前的PE文件提供了那些函数.给别人用. 举个例子: PE文件相当于一个饭店.那么菜单就是导出表. 导出表解盲: 有人认为exe可执行文件.没有导出表.而DLL有导出表.这

PE知识复习之PE的重定位表

PE知识复习之PE的重定位表 一丶何为重定位 重定位的意思就是修正偏移的意思.  如一个地址位 0x401234 ,Imagebase = 0x400000 . 那么RVA就是 1234.  如果Imagebase 变了成了0x300000, 那么修正之后就是 ImageBase + RVA = 0X300000+1234 = 0x301234. 首先我们知道.一个EXE文件.会调用很多DLL(PE) 有多个PE文件组成. exe文件启动的基址 (ImageBase) 是0x40000. 假设我