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()
PHP------知识复习的更多相关文章
- 前端知识复习: JS选中变色
前端知识复习:JS选中变色 上篇文章 :前端知识复习:Html DIV 图文混排(文字放在图片下边) Js选中图片效果 <!DOCTYPE html> <html xmlns=&qu ...
- 前端知识复习:Html DIV 图文混排(文字放在图片下边)
Html知识复习之图文混排 练习练习基础 先上效果图: 废话不多说,直接贴代码: <!DOCTYPE html> <html xmlns="http://www.w3.or ...
- PE知识复习之PE的绑定导入表
PE知识复习之PE的绑定导入表 一丶简介 根据前几讲,我们已经熟悉了导入表结构.但是如果大家尝试过打印导入表的结构. INT IAT的时候. 会出现问题. PE在加载前 INT IAT表都指向一个名称 ...
- PE知识复习之PE的重定位表
PE知识复习之PE的重定位表 一丶何为重定位 重定位的意思就是修正偏移的意思. 如一个地址位 0x401234 ,Imagebase = 0x400000 . 那么RVA就是 1234. 如果Im ...
- PE知识复习之PE的导入表
PE知识复习之PE的导入表 一丶简介 上一讲讲解了导出表. 也就是一个PE文件给别人使用的时候.导出的函数 函数的地址 函数名称 序号 等等. 一个进程是一组PE文件构成的. PE文件需要依赖那些 ...
- PE知识复习之PE的导出表
PE知识复习之PE的导出表 一丶简介 在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成的吗. 答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就 ...
- PE知识复习之PE合并节
PE知识复习之PE合并节 一丶简介 根据上一讲.我们为PE新增了一个节. 并且属性了各个成员中的相互配合. 例如文件头记录节个数.我们新增节就要修改这个个数. 那么现在我们要合并一个节.以上一讲我们例 ...
- PE知识复习之PE新增节
PE知识复习之PE新增节 一丶为什么新增节.以及新增节的步骤 例如前几讲.我们的PE文件在空白区可以添加代码.但是这样是由一个弊端的.因为你的空白区节属性可能是只读的不能执行.如果你修改了属性.那么程 ...
- PE知识复习之PE扩大节
PE知识复习之PE扩大节 一丶为什么扩大节 上面我们讲了,空白区添加我们的代码.但是有的时候.我们的空白区不够了怎么办.所以需要进行扩大节. 扩大节其实很简单.修改节数据对齐后的大小即可. 并且在PE ...
- PE知识复习之PE文件空白区添加代码
PE知识复习之PE文件空白区添加代码 一丶简介 根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码. 我们也可 ...
随机推荐
- WeUI logo专为微信设计的 UI 库 WeUI
http://www.oschina.net/p/weui?fromerr=FnwHyWAb http://weui.github.io/weui/
- 清除SQL Server内存
数据库进行查询时,会缓存结果集,当查询结果过大时会出现内存爆满的情况,如果手动清除SQL所占用的内存呢,在网上搜索一下,把结果贴下面: --强制释放内存 Create procedure [dbo]. ...
- Javascript与jQuery方法的隐藏与显示
如题,代码奉上. <html> <head> <title>denotoggle</title> <style> #box { width: ...
- [android] 天气app布局练习(三)
主要练习LinearLayout和layout_weight属性 <RelativeLayout xmlns:android="http://schemas.android.com/a ...
- Eclipse添加JBOSS支持
Eclipse安装Drools插件(Drools and jBPM tools)时无法安装JBoss Runtime Drools Detector,需要给eclipse安装JBOSS的基础环境,具体 ...
- JS之原型式的继承
创建一个Person的构造器 function Person(first, last, age, gender, interests) { this.name = { first, last }; t ...
- Python-并发编程(进程)
接下来我们用几天的时间说一说python中并发编程的知识 一.背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作 ...
- 使用JS完成注册表单的数据校验
1.前台校验 防君子不防小人 JavaScript被设计用来向HTML页面添加交互行为 JavaScript是一种脚本语言(脚本语言是一种轻量级的编程语言) JavaScript由数行可执行计算机代码 ...
- oracle数据库基本命令
数据库字符集: SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; PARAMETER ...
- 01_java虚拟机基础入门
[Java虚拟机的基本结构] [ 1.类加载子系统 ] 负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间. [ 2.方法区 ] 存放类信息.常量信息.常量池信息, ...