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 "<pre>";
$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<count($arr);$++){
    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 "<pre>";
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 "<pre>";
$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(); 删除路径

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,347评论 0 20
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 1,980评论 1 24
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,086评论 4 97
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,147评论 29 417
  • 数组的概述 PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方...
    dptms阅读 1,587评论 0 4