分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

PHP常用函数封装

发布时间:2023-09-06 02:28责任编辑:胡小海关键词:PHP


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); ???}}

PHP常用函数封装

原文地址:https://www.cnblogs.com/qixidi/p/10199667.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved