php nuset,php

PHP简介

PHP是一种超文本预处理语言,运行在服务器端能和html进行嵌套用于制作动态网页的语言

特点

运行在服务器端的脚本语言

能支持绝大部分的操作系统

能支持大部分的服务器apache IIS

能支持大部分的数据库mysql sql server Acces

能操作数据库

能操作文件

能操作图片

与html嵌套

在<?php ?>分隔符中的内容会被

mamp

集成开发环境

静态网页

没有链接数据库的网页

动态网页

链接数据库,数据库中获取数据

数据库

mongoDB 分布式文件存储的数据库

数据的存储管理、定义

关系型数据库

mysql 关系型数据库

在关系模型的基础上建立的数据库

非关系型数据库

mongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

web服务器

提供web功能的设备

接收请求、处理请求

网络分发、调制解调的功能

服务器返回数据在浏览器中呈现

PHP

运行在服务器端的脚本语言

服务器

处理用户请求

静态资源

.html .css .js .jpg .gif .png

请求静态资源直接原样返回,以字符串的形式返回

动态资源

.php .java

请求动态资源时,先解析PHP的代码,然后把PHP输出的结果,交给服务器返回,当浏览器接收到返回的内容,开始绘制,碰到href,src,url的时候,会再次向服务器发送请求,最终呈现整个页面

处理过程

当在地址栏键入地址的时候,浏览器结合我们的软硬件将http请求发送到网络中,服务器接收到我们的请求,开始处理我们的请求,请求的资源分别按照静态资源和动态资源的处理方式进行处理。

基础

变量

echo

输出到页面中为字符串

var_dump()

输出类型和值

var_dump(123); //返回 int 123;

常量

define('键','值');

值可以用表达式来表示

function name(){

return 800;

}

defined("PI",name()); //返回 int 800;

const

值不可以用表达式

const PI=20*30;

var_dump(PI);

常量的名字需要大写,不加$符号,一旦定义后不能更改

常量的值不能在改变或者是被删除

常量可以在任何位置区访问

常量的值不能延迟求值,只能是标量

可变变量

将一个变量的值作为另一个变量的名字

$nub='name';

$$nub='123';

var_dump($nub); //返回“name”

var_dump($name); //返回“123”

var_dump($$nub); //返回“123”

变量引用

&

引用地址

$nub=200;

$nub2=&$nub;

$nub=300;

echo $nub2; //返回300;

判断

defined();

判断常量是否被定义

isset();

判断变量是否被定义

删除变量

unset();

数据类型9种

标量4种

int

整型integer

float/double

浮点型

string

字符串

. 点

表示连接,可以连接两个标量

标量连接

$nub1=100;

$nub2=200;

var_dump($nub1.$nub2); // .表示连接

“ ”双引号

可以解析变量

$nub=200;

$str1="这是一个数字$nub";

$str2="这是一个数字{$nub}asj293";

boolean

布尔类型

复合类型3种

对象

class person{

}

$obj=new person();

数组

索引数组

print_r();输出数组的形式

echo "

";

$arr1=array('a',12,'b');

$arr2=array(

0=>'a',

2=>34

);

print_r($arr1);

关联数组

$arr3=array(

'name'=>'lisi',

'age'=>13

);

二维数组

$arr4=array(

'name'=>array('a','2'),

'age'=>array(1,2)

);

数组遍历

for(只能遍历索引数组)

for($i=0;$i

echo $arr[$i];

};

foreach(适用于索引数组和关联数组)

foreach($arr1 as $item=>$value){

echo $item.'=>'.$value;

};

callable可调用

特殊类型2种

null

resource

判断

is_resource();

判断是否是一个资源

is_int(); is_integer();

判断是否是整数

is_flaot(); is_double();

判断是否是小数

is_boolean();

is_string();

is_null();

is_array();

is_object();

获取

gettype();

获取数据类型

强制转换

函数方式强转

intval();

转化为整数

strval();

强制转化为字符串

注意:将true转化为1,将false转化为“ ”;

floatval();

强制转化为小数

doubleval();

boolval();

直接强转

(int)

(flaot)

(double)

(bool)

(boolean)

$nub='123';

$result=(int) $nub;

false的情况

var_dump(boolval($nub));

//0 "" false null "0" 空数组;

函数

字符串函数

strlen();

输出字符串的长度

trim();

ltrim();

rtrim();

strtolower();

strtoupper();

strrev();

md5();

将字符串翻译成16进制的字符串

用于加密,而且加密后不可逆

explode();

与js里的split();方法一样,将字符串转换成数组

substr();

从指定位置截取到指定长度(按字节截取)

mb_substr();

从指定位置截取到指定长度(按字符截取)

strstr();

从匹配到的第一个字符开始截取的

最后的参数决定了向前还是向后截取

strpos();

从开始查找指定字符首次出现的位置

最后一个参数offset表示是从哪个index位置开始查起,如果找不到返回false

strrpos();

从最后开始查找指定字符首次出现的位置

str_replace();

替换(区分大小写)

参数search,

str_ireplace();

替换(不区分大小写)

数组函数

in_array();

判断某个值在不在数组里,可以启用全等

$arr=array(11,22,33);

$brr=array(

'name'=>'lisi',

'age'=>18

);

var_dump(in_array(11,$arr)); //bool(true)

var_dump(in_array('18',$brr)); //bool(true)

var_dump(in_array(18,$brr)); //bool(true)

var_dump(in_array('name',$brr)); //bool(false)

array_search();

在数组中搜索给定的值,如果成功则返回响应的键名,若找不到返回false

$arr=array(11,22,33);

$brr=array(

'name'=>'lisi',

'age'=>18

);

var_dump(array_search(18,$brr,true)); //string(3) "age"

array_key_exists();

判断某个值是不是数组中的键,如果有返回true,没有就返回false;

$arr=array(11,22,33);

$brr=array(

'name'=>'lisi',

'age'=>18

);

//array_key_exists();

var_dump(array_key_exists('lisi',$brr)); //bool(false)

var_dump(array_key_exists('name',$brr));

//bool(false)

array_filter();

用回调函数过滤数组中的元素

$arr=array(11,22,33);

$brr=array(

'name'=>'lisi',

'age'=>18

);

echo "

";

var_dump(array_filter($brr,function($value){

return $value;

}));

//array(2) {

["name"]=>

string(4) "lisi"

["age"]=>

int(18)

}

array_walk();

类似foreach,将每个值都执行一个函数

array_map();

将用户自定义函数作用到给定数组的每个值上,返回新的值

array_push();

将数组的后面推入一个或多个新元素,会影响到原数组(入栈)

array_pop();

删除数组中的最后一个元素(出栈)

array_shift();

删除数组中的指定元素去掉并用其他值取代

array_unshift();

在数组前面插入一个或者多个元素

array_keys();

返回的是由键组成的数组,如果有第二个参数,那么返回鱼第二个参数匹配的键

array_values();

返回数组中所有的值

array_sum();

返回数组中所有值的和

array_merge();

将一或者多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面

$array1 = array(

"color" => "red",

2,

4

);

$array2 = array(

"a",

"b",

"color" => "green",

"shape" => "trapezoid",

4

);

$result = array_merge($array1, $array2);

print_r($result);

//输出以下结果

// Array

// (

// [color] => green

// [0] => 2

// [1] => 4

// [2] => a

// [3] => b

// [shape] => trapezoid

// [4] => 4

// )

array_merge_recursive();

合并多多数组,如果有相同的键值,那么后者就会覆盖前者

$ar1=array(

'color'=>array(

'favorite'=>'red'

),

5

);

$ar2=array(

10,

'color'=>array(

'favorite'=>'green',

'blue'

)

);

echo "

";

$result = array_merge_recursive($ar1, $ar2);

print_r($result);

// 以上结果会输出

// Array

// (

// [color] => Array

// (

// [favorite] => Array

// (

// [0] => red

// [1] => green

// )

//

// [0] => blue

// )

//

// [0] => 5

// [1] => 10

// )

array_unique();

去重复

array_rand();

随机取数组里面的值,如果取多个那么返回的是键组成的数组

sort();

按照值进行升序排序,重新排键

rsort();

按照值进行降序排序,重新排键

asort();

按照升序进行排序,保持原来的键

arsort();

按照升序进行排序,保持原来的键

ksort();

按照键进行升序排序

krsort();

按照键进行降序排序

数学函数

abs();

ceil();

floor();

max();

min();

round();

mt_round();

生成随机整数

pow();

PHP函数

如果定义了形式参数,必须传递一个实际参数

判断方法

function_exists();

判断一个函数是否存在

可变函数

function fun(){

echo 123;

}

$name='fun';

$name();

作用域

全局变量

全局变量只能在全局里面使用,不能在局部用

从外面传值

$nub=200;

function fun(&$aa){

$aa=300;

echo $aa;

}

fun($nub);

echo $nub;

声明外全局变量

$nub=200;

function fun(){

global $nub

echo $nub;

}

fun();

超全局变量

$GLOBALS

$nub=200;

function fun(){

$GLOBALS['nub']=300;

echo $GLOBALS['nub'];

}

fun();

echo $nub;

$_GET

$_POST

$_REQUSET

$_FILES

$_SERVER

$_SESSION 服务器端的session

$_COOKIE

局部变量

静态变量

static

在函数第一次运行的时候,会把静态变量保存下来,后面在用的时候会用到静态变量

function fun(){

static $nub=200;

$nub+=1;

echo $nub;

}

fun(); //200;

fun(); //201;

回调函数

传参的方式回调

函数的名字不能直接作为参数用,需要加引号

function aa(){

echo 123;

}

function fun($callback){

$callback();

}

fun('aa'); //123;

在实际参数里面直接写回调函数

function fun($callback){

$callback();

}

fun(function(){

echo 123;

}); //123;

require

在PHP页面引入其他文件,实现代码复用

如果找不到要引入的文件,会erro报错,程序停止

include

在PHP页面引入其他文件,实现代码复用

如果找不到要引入的文件,会warning报警,程序会继续往下运行

时间

设置时间

date_default_timezone_set(timezone indentifier:"Asia/Shanghai");

获取时间的区域

date_default_timezone_set();

time();

距离计算机元年的秒数

microtime();

毫秒数

date()

var_dump(date(Y-m-d H-));

A:"AM"或者是"PM";

d:几日,两位数字,若不足则补零,从“01”至“31”;

D:星期几,3个英文字母,如:“Fri”;

F:月份,英文全名,如:“January”;

h:12小时制的小事,从“01”至“12”;

H:24小时制的小事,从“00”至“23”;

g:12小时制的小事,不补零,从“1”至“12”;

G:24小时制的小事,不补零,从“0”至“23”;

j:几日,不足不补零,从“1”至“31”

l:星期几,英文全名,如“Friday”

m:月份,两位数字,从“01”至“12”;

n:月份,两位数字,从“01”至“12”;

M:月份,3个英文字母,如:“Jan”;

s:秒,从“00”至于“59”;

S:

getdate();

mktime();

服务器存储

cookie

设置cookie

setcookie();

setcookie('name','123',time()+40);

删除cookie

setcookie('name','123',time()-1);

session

开启session

session_start();

设置session

$_SESSION['name']='123';

删除session

unset($_SESSION['name']);

验证码

创建图片

$img=imagecreatetruecolor(width:120,height:40);

$color1=imagecolorallocate($img,red:,green:,blue:);

$color2=imagecolorallocate($img,red:,green:,blue:);

for($i=0;$i<20;i++){

$color=imagecolorallocate($img,red:md_rand(),green:,blue:);

imagesetpixel(); //画圆点;

}

imageline($img,);

imagefill($img,x:0,y:0,$color1);

header("content-type:image/png");

imagepng($img);

//imagejpeg();

imagedestroy($img); //释放资源

//$color=imagecolorallocatealpha();

在html中请求图片

![](checkcode.php)

魔术常量

var_dump(__DIR__); //

var_dump(__FILE__);

var_dump(basename(__FILE__)); //从一个路径中,返回文件名字

var_dump(dirname(__FILE__)); //从一个路径中返回路径

var_dump(file_exists());

is_dir();

is_file();

rmdir(); 删除空文件夹

unlink(); 删除路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值