PHP必备函数

  • htmlspecialchars() 和 htmlentites()
1. 将特殊字符转换成html实体 (如'<div></div>'输出一个div,而htmlspeicalchars('<div></div>')会转换成html实体“<div>”再输出)
2. 将字符串转换成html转义字符 (如'<‘输出为<,而htmlentities('<') 原样输出'&lt')
    如果需要反向操作,则使用html_entity_decode()
  • fileinfo是php的一个扩展,php5.3之前需要在php.ini开启php_fileinfo.dll开启,5.3之后默认开启
  • 数组方法
1. array_keys()
    获取数组的键值
2. array_values()
    获取数组的所有值
3. array_merge()
    合并两个或多个数组    
4. array_combine($arr1, $arr2)
    将数组1作为key,数组2作为value
5. array_reverse()
    颠倒数组
6. array_push()
    末尾追加
7. array_pop()
    弹出末尾
8. array_unshift()
    头部追加
9.  array_shift()
    头部移除
10. array_slice($arr, $start, $len)
    取出部分,不改变原数组
11. array_splice(&$arr, $start, $len. $replace)
     移除部分,用replace取代
12. array_chunk($arr, $split_len)
      数组分割
13. array_map($arr, user_func)
      遍历数组,自定义回调
14. array_filter($arr, user_func)
      自定义回调筛选
15. each()
      遍历数组,会移动数组指针
16. array_search()
      数组查找
17. array_pad($arr, $len, $pad)
      数组填充
18. array_rand()
      随机子集
19. sort()、asort()、ksort()、usort()、rsort()、arsort()、krsort()
      数组排序
20. list($a, $b) = ['a', 'b']
      数据赋值
  • 字符串方法
1. htmlspecialchars
    特殊字符转换成html实体
2. htmlentites
    将字符串转换成html转义字符
3. addslashes
    将字符转中的单引号、双引号、反斜线\转义
    (addcslashes(str, chars)可以对选定的字符进行转义)
4. strip_tags
    去掉字符串中的html和php标签
5. strtolower
    字符串小写
6. strtoupper
    字符串大写
7. trim
    去除两端空格,\t \r \n
8. str_split($str, $len)
    将字符串分割成$len长度的几个字符串
9. strstr($str, $find)
    找到字符串$find第一次出现的位置,输出这个位置右边的子字符串
10. strlen($str)
    获取字符串的长度(英文)
11. mb_strlen($str, $encoding)
    获取字符串长度根据编码
12. strpos($str, $find)
    获取$find第一次出现的位置,找到返回位置下标,找不到返回false
    stripos--忽略大小写
        凡是加了‘i’的都是忽略大小写的版本
        凡是加了‘r’的都是从右往左的版本
13. substr($str, $start, $len)
    获取子字符串, $len省略为到结尾,为负数代表从后往前数
14. str_pad($str, $len, $pad, $type)
    填补字符串到指定长度 $type为STR_PAD_LEFT或者STR_PAD_BOTH或者STR_PAD_RIGHT
15. strcmp($str1, $str2)
    字符串比较,大小写敏感
    strcasecmp大小写不敏感
16. str_shuffle
    随机打乱字符串
17. str_replace($pattern, $replace, $ori_str, $count)
    $pattern和$replace可以为数组
18. str_repeat($str, $times)
    字符串重复
19. explode($split, $str) | implode($split, $arr)
    字符串=》数组
    数组=》字符串
20. md5($str), crypt($str)
    字符串加密
21. strrev($str)
    反转字符串
  • 时间函数
1. date(format, [timestamp])
        Format:
        Y:四位年份
        y:两位年份
        m:两位月份
        n:没有前导0,月份
        M:3位英文月份
        d:两位天数,每月的第几天
        j:没有前导0,每月的第几天,
        D:星期几,3位英文
        N:星期几,1-7
        t:每个月总的天数
        H:两位小时,24小时制
        h:两位小时,12小时制
        G:没有前导0的小时,24小时制
        g:没有前导0的小时,12小时制
2. strtotime()
    * strtotime('now')
    * strtotime('next Monday')
    * strtotime('+1 day')
    * strtotime('+1 week')
    * strtotime('+1 week +2 days +3 hours +4 minutes +5 seconds')
3. time()
    时间戳
4. date_default_timezone_set('PRC')
    设置默认时区
  • Mysql数据库
1. mysqli_connect('host', 'username', 'password', 'dbname')
    mysqli数据库连接
2. mysqli_connect_errno()
    mysqli连接失败代码
3. mysqli_connect_error()
4. mysqli_query()
    成功返回True,失败返回False
5. mysqli_num_rows()
    $result = $mysqli->query($sql);
    $rows = $result->num_rows();
    // or
    $result = mysqli_query($sql);
    $nums = mysqli_num_rows($result);
6. mysqli_fetch_array()
    获取结果集,包含0,1,2..数字和数组-列名两种
    mysqli_fetch_assoc()
    获取结果集,使用数组-列名获取 $row['id']
    mysqli_fetch_row()
    获取结果集,使用0,1,2..  $row[0], $row[1]
    mysqli_fetch_object()
    获取结果集,使用对象方式,$row->id
7. mysqli_autocommit($conn, False|True)
    自动提交,事务相关
    mysqli_commit()
    提交事务,需要mysqli_autocommit(false)
    mysqli_rollback()
8. mysqli_affected_rows()
    $mysqli->affected_rows
    影响的行数
9. mysqli_select_db()
    切换数据库
10. statement
    ```
    if ($stmt = $mysqli->prepare('insert into tb(name, age, address) values (?, ?, ?)')) {
        $stmt->bindParam("sds", $name, $age, $address);
        $name = '小徒徒';
        $age = 23;
        $adderss = '哈尔滨';
        $stmt->execute();
        printf("%d rows affected", $stmt->affected_rows);
        $stmt->close();
    }
    if($stmt2 = $mysqli->prepare('select name, age from tb')) {
        $stmt2->execute();
        $rows = $stmt2->affected_rows();
        $stmt2->bind_result($name, $age);
        while($stmt2->fetch()) {
            printf('%s-%s', $name, $age);
        }
        $stmt->close();
    }
    ```
  • File函数
1. basename()
    去掉路径信息,获取文件或者目录名
2. copy($ori, $des)
    文件复制
3. dirname
    获取文件或目录所属的上级目录
4. disk_free_space()
    磁盘剩余空间
    disk_total_space()
    磁盘总共空间
5. fopen($filename, $mode)
    打开文件,获取句柄,
    $mode为r, r+, w, w+, a, a+, x以读写方式创建并打开文件,如果文件存在,返回false
6. fgetc($handle)
    从文件读取一个字符
7. fgets($handle)
    从文件读取一行
8. file_exists($file)
    文件是否存在
9. file_get_contents($path)
    将文件内容一次性读入一个字符串,如果path有特殊字符,需使用urlencode()
10. file_put_contents($path, $data)
    data可以为数组
11. file($url)
    将一个文件读取到数组中
12. filectime()  文件创建时间
      fileatime()  文件上次访问时间
      filemtime()  文件上次修改时间
13. filesize() 
      文件大小
14. filetype()
      文件类型
15. flock($handle, LOCK_TYPE)
      给文件上锁
      LOCK_EX:独占锁 w w+, a a+
      LOCK_SH:共享锁 r r+
      LOCK_UN:开锁
16. is_dir()
      is_file()
      is_link()
17. is_readable()
      is_writeable()
18. mkdir()
      创建目录
19. pathinfo()
      $pathinfo = pathinfo('/usr/xy/php.ini');
      echo $pathinfo['extension'];  //ini
      echo $pathinfo['basename'];  //php.ini
      echo $pathinfo['dirname'];     // /usr/xy
20. rename()
      移动文件
21. rmdir()
      删除文件夹
22. unlink()
      删除文件
23. is_uploaded_file()
      为了能使 is_uploaded_file() 函数正常工作,必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量,而在从客户端上传的文件名 $_FILES['userfile']['name'] 不能正常运作。 
24. move_uploaded_file()
      如果是通过POST上传的文件,则可以移动,否则返回false
  • Directory函数
1. opendir()
    打开文件夹
        $filepath = "/usr/xy";
        if(is_dir($filepath)) {
            $fp = opendir($filepath);
            while(false !== ($file = readdir($fp))) {
                echo $file;
            }
        }
        function readdir_recusive($filepath, $prefix = '') {
            if(is_dir($filepath)) {
                $handle = opendir($filepath);
                while(false !== ($file = readdir($handle))) {
                    if($file != '.' && $file != '..')
                    {
                        $filename = mb_convert_encoding($file, 'utf-8', 'gbk');
                        $fullpath = mb_convert_encoding($filepath.'/'.$file, 'utf-8', 'gbk');
                        if(is_dir($filepath.'/'.$file)) {
                            echo '<span style="font-size: 16px; color: #19d;">'.$filename. '</span><br>';                   
                            readdir_recusive($filepath.'/'.$file, $prefix.'    ');
                        }
                        else
                        {
                            echo $prefix.'<span style="font-size: 16px; color: #ea4;"><a href="file://'.$fullpath.'" target="__blank">'. $filename . '</a></span><br>';
                        }
                    }
                }
                closedir($handle);
            }
        }
          
        readdir_recusive(mb_convert_encoding('F://下载', 'gbk', 'utf-8'));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,363评论 0 20
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 1,984评论 1 24
  • <?php /** * 常用函数库 * */ class Core_Fun { /** * 对变量进行反...
    寻梦xunm阅读 511评论 0 0
  • 一、数组 1、数组的声明:$arr = array(); 2、数组的初始化:PHP有两种数组:索引数组、关联数组。...
    yzw12138阅读 1,200评论 2 2
  • 其实我也不知道怎么说吧,可能就是想把我自己所有的想法通过文字在这里表叔出来。 我叫沈嘉琪 1999-3-3 大家应...
    Sq_阅读 253评论 0 0