程序员PHP经验分享

想学习php的,不如来这里看看

2017-08-14  本文已影响159人  Wizey
php语言图片

基本命令

win+R打开命令行,cmd进DOS窗口
DOS命令开启关闭Apache和Mysql
Apache启动关闭命令

httpd -k stop  
httpd -k start  
httpd -k restart

Mysql启动关闭命令

net stop mysql
net stop mysql

Apache默认首页

index.php index.html index.htm //优先级从左到右
在httpd.conf文件里面有优先级的定义

php语言的简单介绍

php不是强类型语言,是弱类型语言(解析型语言),不需要提前声明,由程序自己判断,和强类型语言不同,不需要编译后再使用,apache可以调用php解析器直接解析php代码,html中直接嵌套php代码,当前要是在php文件中

基本知识

php中变量名区分大小写,函数名和类名不区分大小写,所以干脆变量名和函数名全小写
utf-8编码时,一个中文三个字符
gbk编码时,一个中文两个字符

变量输出

  echo $name;//输出变量
  var_dump($name);//输出数组,并且打印类型和长度
  print_r($name);//输出数组,但不打印类型和长度

基本函数

整型 is_int();
浮点型 is_float();
字符型 is_string();
布尔型 is_bool();
数组 is_array();
对象 is_object();
资源 is_resource();
null类型 is_null();

变量类型

标量类型 整型 浮点型 字符型 布尔型
复合类型 数组 对象
特殊类型 资源 null类型

is_scalar() 测试是否是标量
is_numeric 测试是否是数字 整型 浮点型
is_callable() 测试是否是函数,语言结构则会返回false
echo()不是函数,虽然后面也可以加括号,和函数类似
print()也是语言结构,而printf是函数
array()也是语言结构
list()也是语言结构
if($num){
//如果为真则执行
} 
else{
}

强制类型转换 和C语言一样
(类型名)变量 例如(float)$num

php中的常量

define("HOST","localhost"); 
define("USER","root");
define("PASS","123");
define("DBNAME","test");

数据库的配置文件就要用到常量,而且后面不能被修改
常量不能被放到双引号里面或者花括号里面,要用.来连接常量

PHP_OS  系统平台
PHP_VERSION php当前的版本
__LINE__    该行代码在第几个行
__FILE__    文件的绝对路径
__FUNCTION__    函数的名字
M_PI    圆周率
$arr = array("use1","use2","use3");
echo $arr[1];
$arr = array("name"=>"user","age"=>"30");
echo "<pre>";
print_r($arr);
echo "</pre>";

对象运算符 -> 对象使用
逻辑运算符
开关功能 && 如果前面为真,才会判断后面的,和C语言一样,面试会考,但没有实际意义

date("Y-m-d");系统的年月日,Y,m,d的顺序是可以换的哦
date("w");系统的周几
header("content-type:text/html;charset = utf-8");
<?php
    $days = 31;
    echo "<table width = '700px', border = '1px'>";
    for($i = 1, $k = 1; $i <= $days;){
        //在行产生的时候判断行数来确定行的颜色
        if($k % 2 == 1){
            echo "<tr bgcolor = 'grey'>";
        }
        else{
            echo "<tr style = 'background:blue'>";
        }
        //七天为一个周期
        for($j = 0; $j < 7; $j++){
            if($i > $days){
                echo "<td> </td>";
            }
            else{
                echo "<td>{$i}</td>";
            }
            $i++;
        }
        echo "</tr>";
        $k++;
    }
    echo "</table>";
?>
exit();后面的()可以不用写
die();后面的()可以不用写,并且可以在里面写上内容
例如:die("脚本终止");

文件包含

include()和require()的区别

三种方法来进行数组遍历

for循环来进行带数字索引数组遍历,而foreach()可以遍历一切数组,foreach($arr as $key => $val),as就是从$arr中取值$val,然后再在循环里面打印数组的值,关联数组索引被称为键值对,list和each遍历数组,感觉麻烦,while(list($key,$val) = each($arr)){echo "<h1>{$key}:{$val}</h1>";
多维数组,数组里面套数组,例如二维数组:$arr = array(1, 2, array(4,5));
一张数据表其实就是一个二维数组,里面的每一行记录就是一个一维数组

22.超全局数组

$_SERVER 查看服务器信息,用print_r打印服务器相关信息,不要用echo
$_GET 获取get提交过来的数据,两个页面之间通讯,表单传值(get方式,post方式),
a标签传值(get传值),get传值的可以在地址上看到,不安全,
a标签推荐使用get提交数据,表单推荐使用post处传值方式,
而$_POST获取表单post传过来的数据,$_REQUEST获取a标签或者表单get或者post过来的数据
$_REQUEST 等于$_GET和$_POST
cookie和session前面不能有输出
$_COOKIE 同一个变量在多个页面获取到
$_SESSION 同一个变量在多个页面获取到
$_FILES 获取表单中的文件,并生成一个数组
$GLOBALS 里面包含页面内的全局变量,在函数里面改变一个外部变量的值,可以用$GLOBALS[$name] = "...";
    array_keys();获取数组中的键,参数是数组名
    array_vals();获取数组中的值,参数是数组名
    array_key_exists();检查一个键是否在数组中  
    in_array();检查一个值是否在数组中,里面的参数是"值"和数组名
    array_flip();键和值对调,参数是数组名
    array_reverse();数组中的值反转,也就是函数返回一个和原来数组顺序相反的数组

统计数组的元素和唯一性

    count();统计数组元素个数
    array_count_values();统计数组中相同值的个数,并返回一个新的数组
    array_unique();删除数组中重复的值

使用回调函数处理数组的函数(过滤)

    array_filter();数组值过滤,筛选出符合条件的值,参数是数组名和条件
    array_map();将回调函数作用到给定数组的元素上,参数是函数和数组,返回一个新数组

数组的排序函数

    sort();升序排列,不保留key
    rsort();降序排列,不保留key
    asort();保留key升序排列
    arsort();保留key降序排列
    ksort();根据值对key升序排列,排列后key和value互换
    krsort();根据值对key降序排列,排列后key和value互换
    natsort();用自然排序算法升序排列,如果想降序排列,可以再使用array_reverse()函数倒转
    natcasesort();忽略大小写升序排列
    array_multisort();多个数组进行排序

拆分、合并、分解与结合函数

explode();拆分函数,例如:explode("-",$arr);
join();//implode();都是合并函数 
array_slice();

参数是变量名,起始标量,终止标量,例如:``array($arr, 0, 3);```正数是从左到右截取,负数是从右到左截取,变成一个数组,而原来的数组不变

array_splice();

用法和array_slice类似,不一样的是它不但产生一个新数组,还会把原数组变成截取后剩下的部分,更厉害的是它还可以在原数组裁剪的地方添加元素,例如array_splice($arr, 0, 3, array("ff", "gg", "hh"));所添加的元素会放到原数组的被裁剪的地方

array_merge($a, $b);合并两个数组变成一个数组
array_combine($a, $b);和并联个数组使前面的数组变成后面数组的下标 
array_intersect();取两个数组的交集
array_diff();前面的作为参照物,取后面数组中的和前面不一样的元素,求差集

数组与数据结构

array_pop()弹出数组的最后一个元素,改变原数组,并返回一个新数组,和unset()不一样
array_push();返回新数组的元素个数,改变原数组
array_shift();在数组最前面弹出一个值,返回移出值,原数组下标重排
array_unshift();在数组前面插入一个值,返回数组个数

其他有用的数组处理函数

array_rand();随机取一个key
shuffle();打乱一个数组
array_sum;求数组所有值的和
range();获取一个范围内的数组,两个参数,可以做验证码

字符串函数

    去除空格和字符串填补的函数(解决用户名因多敲了空格而造成不能登录)
    ltrim();去除字符串左边的空格
    rtrim();去除字符串右边的空格
    trim();去除字符串左右两边的空格
    str_pad();填充字符串的长度,使用另一个字符串填充字符串为指定长度,
例如echo str_pad($str, "-", (STR_PAD_LEFT));最后一个参数可写可不写
    str_repeat(); 将一个字符串重复多少次,例如echo str_repeat("_",3),输出 ___
    strlen();获取字符串长度

字符串大小写转换函数

    strtoupper();
    strtolower();
    ucfirst();字符串的首字母大写
    ucwords();字符串的每一个单词的首字母都大写

与html相关联的字符串函数(结合着数据库来看)

    nl2br();把\n转成br标签,例如echo nl2br("aaaa\nbbb\ccc");和其他语言交互的时候使用可以换行
    htmlspecialchars();转实体,转“、< > &”,对于恶意输入,原样输出
    strip_tags();去掉html标签,也可以保留一部分,在参数后面加上所要保留的标签,记着加双引号
    addslashes();转义' " \ ,在它们前面加上\,和C语言的转义字符一样,默认php开启
    stripslashes();去掉addslashes默认加的\

字符串比较函数(ASCII码)

1.按字节进行字符串的比较
    strcmp($str1, $str2);比较字符串的每个字节
    strcasecmp();忽略大小写比较字符串的每个字节
2.按自然排序时字符串的比较
    strnatcmp();按自然排序比较字符串中的数字
    strnatcasecmp();按自然排序忽略比较字符串中的数字

字符串的分割与拼接(和前面数组部分一样)

1.分割 explode();把字符串分割成数组
2.拼接implode()(join());把字符串拼接成字符串

字符串的截取

substr();参数为变量名,起始位置坐标(从0开始),终止位置坐标。
 需要注意编码问题,可以统一字符编码,
例如:(这个是支持多字节的)echo mb_substr($str, 0, 6,"utf-8"),
不管是中文字符还是英文的字符,都会截取前6个

查询字符串

    1.strstr();查找指定字符在字符串中的第一次出现,返回一个字符串,但不够精确
    2.strrchr();查找指定字符在字符串中的最后一次出现
    3.strpos();查找指定字符在字符串第一次出现的位置
    4.strrpos($str, 'w');w在$str中最后一次出现的位置

字符串替换

1.str_replace();参数是两个字符串和一个字符串名字,后面的替换前面的,但是想替换多个不同的字符串,
可以把它们放在一个数组中,然后用数组作为第一个参数,就可以实现多个替换了,
并且还可以实现多个替换多个,就是把第二个参数也变成数组,两个数组对应替换

字符串拆分常用函数

1.pathinfo($str);
2.parse_url($str);专门针对url地址拆分
3.parse_str($str['query'], $arr);拆分更具体
4.preg_split('/ /',$srr['']);正则拆分

其他字符串函数

    strrev();字符串翻转
    strlen();字符串长度
    number_format();格式化数字字符串,每三个字符加一个(,),
    还可以选择保留几位小数,可以按照自己的要求格式化
    md5();md5加密后的字符串,加密后是一个32位字符串
    str_shuffle();随机输出字符串,和数组里面的shuffle一样
    1.[b]aaaaaa[/b]  UBB代码,使用strip_tags过滤一部分html标签
    2.addslashes()
    ' " \ 前加上\,防止对数据库造成破坏
    3.htmlspecialchars()
    将' " < > & 转成实体,防止对数据库造成破坏
    字符串的匹配与查找
    1.preg_match();正则表达式匹配
    2.preg_match_all();正则表达式全匹配
    3.preg_grep();可以做搜索
    字符串替换
    4.preg_replace();正则表达式替换
    字符串分割
    5.preg_split(); 正则表达式分割
    注:  参数有两种,1.多个数字,2.多个数字组成的数组
    1.max(10,5,8);取最大值
    2.min();取最小值
    3.mt_rand();随机去一个值,参数是一个范围
    4.ceil();距该数的上一个整数,不是四舍五入
    5.floor();距该数的下一个整数
    6.pi();取圆周率函数
    7.round();四舍五入函数

与时区有关的函数

1.date_default_timezone_set("时区名字缩写");中国的缩写是PRC
2.date_default_timezone_get();默认的时区,这个和PHP的配置文件有关,
在php.ini里面可以修改默认的时区,这样就不用设置默认的时间了
3.date_timezone_set();
4.date_timezone_get();
上一篇下一篇

猜你喜欢

热点阅读