博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP常用函数封装
阅读量:5143 次
发布时间:2019-06-13

本文共 10171 字,大约阅读时间需要 33 分钟。

PHP常用函数封装

//二分查找function bin_sch($array, $low, $high, $k){    if ($low <= $high) {        $mid = intval(($low + $high) / 2);        if ($array[$mid] == $k) {            return $mid;        } elseif ($k < $array[$mid]) {            return bin_sch($array, $low, $mid - 1, $k);        } else {            return bin_sch($array, $mid + 1, $high, $k);        }    }    return -1;}  //顺序查找(数组里查找某个元素)function seq_sch($array, $n, $k){    $array[$n] = $k;    for ($i = 0; $i < $n; $i++) {        if ($array[$i] == $k) {            break;        }    }    if ($i < $n) {        return $i;    } else {        return -1;    }}  //线性表的删除(数组中实现)function delete_array_element($array, $i){    $len = count($array);    for ($j = $i; $j < $len; $j++) {        $array[$j] = $array[$j + 1];    }    array_pop($array);    return $array;}//冒泡排序(数组排序)function bubble_sort($array){    $count = count($array);    if ($count <= 0) return false;    for ($i = 0; $i < $count; $i++) {        for ($j = $count - 1; $j > $i; $j--) {            if ($array[$j] < $array[$j - 1]) {                $tmp = $array[$j];                $array[$j] = $array[$j - 1];                $array[$j - 1] = $tmp;            }        }    }    return $array;}  //快速排序(数组排序)function quick_sort($array){    if (count($array) <= 1) return $array;    $key = $array[0];    $left_arr = array();    $right_arr = array();    for ($i = 1; $i < count($array); $i++) {        if ($array[$i] <= $key)            $left_arr[] = $array[$i];        else            $right_arr[] = $array[$i];    }    $left_arr = quick_sort($left_arr);    $right_arr = quick_sort($right_arr);    return array_merge($left_arr, array($key), $right_arr);} //获得文件属性 $file是文件路径如$_SERVER['SCRIPT_FILENAME'],$flag文件的某个属性function getFileAttr($file, $flag){    if (!file_exists($file)) {        return false;    }    switch ($flag) {        case 'dir':            if (is_file($file))                return dirname($file);            return realpath($file);            break;        case 'name':            if (is_file($file))                return basename($file);            return '-';            break;        case 'size':            if (is_file($file))                return filesize($file);            return '-';            break;        case 'perms':            return substr(sprintf('%o', fileperms($file)), -4);;            break;        case 'ower':            return fileowner($file);            break;        case 'owername':            $ownerInfo = posix_getpwuid(fileowner($file));            return isset($ownerInfo['name']) ? $ownerInfo['name'] : false;            break;        case 'groupname':            $ownerInfo = posix_getpwuid(filegroup($file));            return isset($ownerInfo['name']) ? $ownerInfo['name'] : false;            break;        case 'ctime':            return filectime($file);            break;        case 'mtime':            return filemtime($file);            break;        case 'atime':            return fileatime($file);            break;        case 'suffix':            if (is_file($file))                return substr($file, strrpos($file, '.') + 1);            return '-';            break;        default:            return false;            break;    }} /** * 整理json格式字符串数据 * @param string $json json格式字符串数据 * @param bool|false $assoc * @param int $depth * @param int $options * @return mixed */public function json_clean_decode($json, $assoc = false, $depth = 512, $options = 0){    $json = str_replace(array("\n", "\r"), "", $json);    $json = preg_replace("#(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|([\s\t](//).*)#", '', $json);    $json = preg_replace('/([{,]+)(\s*)([^"]+?)\s*:/', '$1"$3":', $json);    $json = preg_replace('/(,)\s*}$/', '}', $json);    if (version_compare(phpversion(), '5.4.0', '>=')) {        $json = json_decode($json, $assoc, $depth, $options);    } elseif (version_compare(phpversion(), '5.3.0', '>=')) {        $json = json_decode($json, $assoc, $depth);    } else {        $json = json_decode($json, $assoc);    }    return $json;}  /** * 判断$strJson是否是一个有效的json格式字符串 * @param $strJson * @return bool */public function isValidJson($strJson){    json_decode($strJson);    return (json_last_error() === JSON_ERROR_NONE);}  /** * 去掉字符串中的斜线(单斜线和双斜线) * @param string $string * @return string */public static function removeslashes($string = ''){    $string = implode("", explode("\\", $string));    return stripslashes(trim($string));}//去除数组中的单斜线function stripslashes_deep($value){    $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);    return $value;}//入库添加斜线 防sql注入function add_slashes_recursive( $variable ){    if ( is_string( $variable ) )        return addslashes( $variable ) ;    elseif ( is_array( $variable ) )        foreach( $variable as $i => $value )            $variable[ $i ] = add_slashes_recursive( $value ) ;    return $variable ;} //页面显示时去掉数据库中数据的斜线function strip_slashes_recursive( $variable ){    if ( is_string( $variable ) )        return stripslashes( $variable ) ;    if ( is_array( $variable ) )        foreach( $variable as $i => $value )            $variable[ $i ] = strip_slashes_recursive( $value ) ;        return $variable ; }数据库操作/** * 连接MYSQL函数,需要在连接的时候传递一个数组 * @param array $config * @return resource */function connect1 ($config){    //连接mysql    $link=@mysql_connect($config['host'],$config['username'],$config['password']) or die ('数据库连接失败<br/>ERROR '.mysql_errno().':'.mysql_error());    //设置字符集    mysql_set_charset($config['charset']);    //打开指定的数据库    mysql_select_db($config['dbName']) or die('指定的数据库打开失败');       return $link;}/**建议使用该函数 * 连接MYSQL函数,通过常量的形式来连接数据库 * 自定义配置文件,配置文件中自定义常量,包含需要使用的信息 * @return resource */function connect2 (){     //连接mysql    $link=@mysql_connect(DB_HOST,DB_USER,DB_PWD) or die ('数据库连接失败<br/>ERROR '.mysql_errno().':'.mysql_error());    //设置字符集       mysql_set_charset(DB_CHARSET);    //打开指定的数据库    mysql_select_db(DB_DBNAME) or die('指定的数据库打开失败');    return $link;}/* array('username'=>'king','password'=>'123123','email'=>'dh@qq.com') *//** * 插入记录的操作 * @param array $array * @param string $table * @return boolean */function insert($array,$table){    $keys=join(',',array_keys($array));    $values="'".join("','", array_values($array))."'";    $sql="insert {$table}({$keys}) VALUES ({$values})";    $res=mysql_query($sql);    if($res){        return mysql_insert_id();    }else{        return false;    }}/** * MYSQL更新操作 * @param array $array * @param string $table * @param string $where * @return number|boolean */function update($array,$table,$where=null){    foreach ($array as $key=>$val){        $sets.=$key."='".$val."',";    }    $sets=rtrim($sets,','); //去掉SQL里的最后一个逗号    $where=$where==null?'':' WHERE '.$where;    $sql="UPDATE {$table} SET {$sets} {$where}";    $res=mysql_query($sql);    if ($res){        return mysql_affected_rows();    }else {        return false;    }}/** * 删除记录的操作 * @param string $table * @param string $where * @return number|boolean */function delete($table,$where=null){    $where=$where==null?'':' WHERE '.$where;    $sql="DELETE FROM {$table}{$where}";    $res=mysql_query($sql);    if ($res){        return mysql_affected_rows();    }else {        return false;    }}/** * 查询一条记录 * @param string $sql * @param string $result_type * @return boolean */function fetchOne($sql,$result_type=MYSQL_ASSOC){    $result=mysql_query($sql);    if ($result && mysql_num_rows($result)>0){        return mysql_fetch_array($result,$result_type);    }else {        return false;    }}/** * 得到表中的所有记录 * @param string $sql * @param string $result_type * @return boolean */function fetchAll($sql,$result_type=MYSQL_ASSOC){    $result=mysql_query($sql);    if ($result && mysql_num_rows($result)>0){        while ($row=mysql_fetch_array($result,$result_type)){            $rows[]=$row;        }        return $rows;    }else {        return false;    }}/**取得结果集中的记录的条数 * @param string $sql * @return number|boolean */function getTotalRows($sql){    $result=mysql_query($sql);    if($result){        return mysql_num_rows($result);    }else {        return false;    }   }/**释放结果集 * @param resource $result * @return boolean */function  freeResult($result){    return  mysql_free_result($result);}/**断开MYSQL * @param resource $link * @return boolean */function close($link=null){    return mysql_close($link);}/**得到客户端的信息 * @return string */function getClintInfo(){    return mysql_get_client_info();}/**得到MYSQL服务器端的信息 * @return string */function getServerInfo($link=null){    return mysql_get_server_info($link);}/**得到主机的信息 * @return string */function getHostInfo($link=null){    return mysql_get_host_info($link);}/**得到协议信息 * @return string*/function getProtoInfo($link=null){    return mysql_get_proto_info($link);}/** * 根据数据中的某一字段排序 * @param array $array 原始数组 * @param $field 数组字段 * @param bool|false $desc */public function sortArrByField(&$array, $field, $desc = true){    $fieldArr = array();    foreach ($array as $k => $v) {        $fieldArr[$k] = $v[$field];    }    $sort = $desc  ? SORT_DESC : SORT_ASC ;    array_multisort($fieldArr, $sort, $array);}//获得数组中重复的数据function fetchRepeatMemberInArray($array){    // 获取去掉重复数据的数组    $unique_arr = array_unique($array);    // 获取重复数据的数组    $repeat_arr = array_diff_assoc($array, $unique_arr);    return $repeat_arr;}//PHP实现双端队列class Deque{    public $queue = array();    /**(尾部)入队  **/    public function addLast($value)    {        return array_push($this->queue,$value);    }    /**(尾部)出队**/    public function removeLast()    {        return array_pop($this->queue);    }    /**(头部)入队**/    public function addFirst($value)    {        return array_unshift($this->queue,$value);    }    /**(头部)出队**/    public function removeFirst()    {        return array_shift($this->queue);    }    /**清空队列**/    public function makeEmpty()    {        unset($this->queue);    }    /**获取列头**/    public function getFirst()    {        return reset($this->queue);    }    /** 获取列尾 **/    public function getLast()    {        return end($this->queue);    }    /** 获取长度 **/    public function getLength()    {        return count($this->queue);    }}

转载于:https://www.cnblogs.com/qixidi/p/10199667.html

你可能感兴趣的文章
【Linux】ping命令详解
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
【模板】最小生成树
查看>>
java面试题
查看>>
pair的例子
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
Oracle中包的创建
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
构造者模式
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
jQuery on(),live(),trigger()
查看>>
Date Picker控件:
查看>>
你的第一个Django程序
查看>>