PHP获取文件扩展名(后缀)
 function getExtension($filename){
   $myext = substr($filename, strrpos($filename, '.'));
   return str_replace('.','',$myext);
 }
 使用方法如下:
 $filename = '我的文档.doc';
 echo getExtension($filename);

 PHP获取文件大小并格式化

 以下使用的函数可以获取文件的大小,并且转换成便于阅读的KB,MB等格式。
 function formatSize($size) {
     $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
     ) {
         return('n/a');
     } else {
       , ($i = floor(log($size, )))), ) . $sizes[$i]);
     }
 }
 使用方法如下:
 $thefile = filesize('test_file.mp3');
 echo formatSize($thefile);

 PHP替换标签字符

 有时我们需要将字符串、模板标签替换成指定的内容,可以用到下面的函数:

 function stringParser($string,$replacer){
     $result = str_replace(array_keys($replacer), array_values($replacer),$string);
     return $result;
 }
 使用方法如下:

 $string = 'The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself';
 $replace_array = array('{b}' => '<b>','{/b}' => '</b>','{br}' => '<br />'); 

 echo stringParser($string,$replace_array);

 PHP列出目录下的文件名

 如果你想列出目录下的所有文件,使用以下代码即可:
 function listDirFiles($DirPath){
     if($dir = opendir($DirPath)){
          while(($file = readdir($dir))!== false){
                 if(!is_dir($DirPath.$file))
                 {
                     echo "filename: $file<br />";
                 }
          }
     }
 }
 使用方法如下:

 listDirFiles('home/some_folder/');

 PHP获取当前页面URL

 以下函数可以获取当前页面的URL,不管是http还是https。
 function curPageURL() {
     $pageURL = 'http';
     if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";}
     $pageURL .= "://";
     ") {
         $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
     } else {
         $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
     }
     return $pageURL;
 }
 使用方法如下:

 echo curPageURL();

 PHP强制下载文件

 有时我们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。

 function download($filename){
     if ((isset($filename))&&(file_exists($filename))){
        header("Content-length: ".filesize($filename));
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        readfile("$filename");
     } else {
        echo "Looks like file does not exist!";
     }
 }
 使用方法如下:
 download('/down/test_45f73e852.zip');

 PHP截取字符串长度

 我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。
 /*
  Utf-8、gb2312都支持的汉字截取函数
  cut_str(字符串, 截取长度, 开始长度, 编码);
  编码默认为 utf-8
  开始长度默认为 0
 */
 function cutStr($, $code = 'UTF-8'){
     if($code == 'UTF-8'){
         $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
         preg_match_all($pa, $string, $t_string); 

         ]) - $start > $sublen) ], $start, $sublen))."...";
         ], $start, $sublen));
     }else{
         $start = $start*;
         $sublen = $sublen*;
         $strlen = strlen($string);
         $tmpstr = ''; 

         ; $i<$strlen; $i++){
             if($i>=$start && $i<($start+$sublen)){
                 ))>){
                     $tmpstr.= substr($);
                 }else{
                     $tmpstr.= substr($);
                 }
             }
             ))>) $i++;
         }
         if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
         return $tmpstr;
     }
 }
 使用方法如下:
 $str = "jQuery插件实现的加载图片和页面效果";
 echo cutStr($str,);

 PHP获取客户端真实IP

 我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:
 //获取用户真实IP
 function getIp() {
     if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
         $ip = getenv("HTTP_CLIENT_IP");
     else
         if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
             $ip = getenv("HTTP_X_FORWARDED_FOR");
         else
             if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                 $ip = getenv("REMOTE_ADDR");
             else
                 if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
                     $ip = $_SERVER['REMOTE_ADDR'];
                 else
                     $ip = "unknown";
     return ($ip);
 }
 使用方法如下:
 echo getIp();

 PHP防止SQL注入

 我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:
 function injCheck($sql_str) {
     $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);
     if ($check) {
         echo '非法字符!!';
         exit;
     } else {
         return $sql_str;
     }
 }
 使用方法如下:

 echo injCheck('1 or 1=1');

 PHP页面提示与跳转

 我们在进行表单操作时,有时为了友好需要提示用户操作结果,并跳转到相关页面,请看以下函数:
 function message($msgTitle,$message,$jumpUrl){
     $str = '<!DOCTYPE HTML>';
     $str .= '<html>';
     $str .= '<head>';
     $str .= '<meta charset="utf-8">';
     $str .= '<title>页面提示</title>';
     $str .= '<style type="text/css">';
     $str .= '*{margin:0; padding:0}a{color:#369; text-decoration:none;}a:hover{text-decoration:underline}body{height:100%; font:12px/18px Tahoma, Arial,  sans-serif; color:#424242; background:#fff}.message{width:450px; height:120px; margin:16% auto; border:1px solid #99b1c4; background:#ecf7fb}.message h3{height:28px; line-height:28px; background:#2c91c6; text-align:center; color:#fff; font-size:14px}.msg_txt{padding:10px; margin-top:8px}.msg_txt h4{line-height:26px; font-size:14px}.msg_txt h4.red{color:#f30}.msg_txt p{line-height:22px}';
     $str .= '</style>';
     $str .= '</head>';
     $str .= '<body>';
     $str .= '<div class="message">';
     $str .= '<h3>'.$msgTitle.'</h3>';
     $str .= '<div class="msg_txt">';
     $str .= '<h4 class="red">'.$message.'</h4>';
     $str .= '<p>系统将在 <span style="color:blue;font-weight:bold">3</span> 秒后自动跳转,如果不想等待,直接点击 <a href="{$jumpUrl}">这里</a> 跳转</p>';
     $str .= "<script>setTimeout('location.replace(\'".$jumpUrl."\')',2000)</script>";
     $str .= '</div>';
     $str .= '</div>';
     $str .= '</body>';
     $str .= '</html>';
     echo $str;
 }
 使用方法如下:

 message('操作提示','操作成功!','http://www.vudiy.com/');

 PHP计算时长

 我们在处理时间时,需要计算当前时间距离某个时间点的时长,如计算客户端运行时长,通常用hh:mm:ss表示。
 function changeTimeType($seconds) {
     ) {
         $hours = intval($seconds / );
         $minutes = $seconds % ;
         $time = $hours . ":" . gmstrftime('%M:%S', $minutes);
     } else {
         $time = gmstrftime('%H:%M:%S', $seconds);
     }
     return $time;
 }
 使用方法如下:
 $seconds = ;
 echo changeTimeType($seconds);

 url传值中汉字的编码处理

 做个东西,需要调用用户名及链接,下面是对用户名中的汉字进行url编码的代码段!
 function ConvertUrlEncode($text)
 {
 $textUrl = htmlspecialchars(urlencode($text));
 return $textUrl;
 }

 echo "<a href='http://www.nuodou.net/space-username-". ConvertUrlEncode("haibor") .".html' target=_blank>haibor</a><br><br>";
 echo "<a href='http://www.nuodou.net/space-username-". ConvertUrlEncode("小地瓜") .".html' target=_blank>小地瓜</a>";

 、分页函数
 这个函数历来比较热门,分页方法层中不穷,但原理就是那样而已~~喜欢的自己研究一下吧。
 /**
  * 分页函数
  *
  * $count 条目总数
  * $perlogs 每页显示条数目
  * $page 当前页码
  * $url 页码的地址
  */
 function multi($count, $perlogs, $page, $url, $anchor = '') {
     $pnums = @ceil($count / $perlogs);
         $multi = '';
         $multiall = '<em>共 '.$pnums.' 页</em>';
         $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|", "", $url);
         ; $i <= $page +  && $i <= $pnums; $i++) {
            ) {
               if ($i == $page) {
                   $multi .= " <span>$i</span> ";
               } elseif ($i == ) {
                   $multi.= " <a href=\"$urlHome$anchor\">$i</a> ";
               } else {
                   $multi.= " <a href=\"$url$i$anchor\">$i</a> ";
               }
            }
        }
        ){
           $multi = '<a href="'.$urlHome.$anchor.'" >首页</a><em>...</em>'.$multi;
        }
         < $pnums){
           $multi .='<em>...</em> <a href="'.$url.$pnums.$anchor.'" >末页</a>';
        }
        ){
           $multi = '';
           $multiall = '';
        }
     return $multi.$multiall;
 }

 、人性化时间格式
 这个越来越受站长门喜欢了,特别是论坛,发帖时间都变为 XX秒前,xx小时前,今天发表,前天发表……样式多种多样,下面这个函数,可以自动把时间变为“个性化”。
 function cus_date($timestamp, $dstr = 'Y-m-d H:i') {
     $timezone = ;
     $op = '';
     $sec = time() - $timestamp;
     $hover = floor($sec / );
     ) {
         $min = floor($sec / );
         ) {
             $op = $sec . ' 秒前';
         } else {
             $op = "$min 分钟前";
         }
     } elseif ($hour < ) {
         $op = " $hour 小时前";
     } else {
         $op = gmdate($dstr, $timestamp + $timezone * );
     }
     return $op;
 }

常用PHP函数的封装的更多相关文章

  1. MYSQL常用操作函数的封装

    1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $usern ...

  2. 常用ASP函数的封装

    做ASP开发常常需要用到一些小功能,这些功能通常我们都会封装成函数来使用,本教程提供了许多我们经常用到的ASP函数. <% '所有功能函数名如下: ' StrLength(str) 取得字符串长 ...

  3. 辛巴学院-Unity-剑英陪你零基础学c#系列(四)函数和封装

    辛巴学院:正大光明的不务正业. 国庆长假结束了,我的心情是这样的: 你总是起不早,起不早独自一个人沉睡到天亮你无怨无悔的梦着那副本我知道你根本就不想上班你总是起不早,起不早放假总是短暂,上班太难请个病 ...

  4. php常用Stream函数集介绍

    php常用Stream函数集介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-24   本篇文章是对php中的常用Stream函数集进行了详细的分析介绍,需要的朋友参考下     ...

  5. PHP常用文件函数和目录函数整理

    一.常用文件函数库 1.basename(); -- 返回路径中的文件名部分. string basename ( string $path [, string $suffix ] ) //给出一个包 ...

  6. api日常总结:前端常用js函数和CSS常用技巧

    我的移动端media html{font-size:10px} @media screen and (min-width:321px) and (max-width:375px){html{font- ...

  7. [c/c++] programming之路(23)、字符串(四)——strncat,atoi,strcmp,strlen等,以及常用内存函数

    一.strncat及自行封装实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #i ...

  8. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  9. php常用字符串函数小结

    php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...

随机推荐

  1. windows下安装mongodb以及node.js连接mongodb

    一.MongoDB 下载 下载地址  https://www.mongodb.com/download-center#community  选择windows版下载,然后安装. 二.安装完毕后创建数据 ...

  2. 基于spark和sparkstreaming的word2vec

    概述 Word2vec是一款由谷歌发布开源的自然语言处理算法,其目的是把words转换成vectors,从而可以用数学的方法来分析words之间的关系.Spark其该算法进行了封装,并在mllib中实 ...

  3. DB太大?一键帮你收缩所有DB文件大小(Shrink Files for All Databases in SQL Server)

    本文介绍一个简单的SQL脚本,实现收缩整个Microsoft SQL Server实例所有非系统DB文件大小的功能. 作为一个与SQL天天打交道的程序猿,经常会遇到DB文件太大,把空间占满的情况: 而 ...

  4. Linux环境g++编译TinyXML动态库

    除了CMarkup,tinyxml也是C/C++下解析XML很好的工具.在linux下用g++编译tinyxml的步骤如下(tinyxml版本2.6.2): 进入tinyxml解压目录,用文本编辑器打 ...

  5. SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7

    当前表出于 装入暂挂状态,使用重组命令(reorg) 不起作用,报SQL-104, 然后从网上百度了大量解除 DB2暂挂的命令均不好使,最后采用了对表的runstats单个优化,也是类似reorg的单 ...

  6. Nodejs基础:stream模块入门介绍与使用

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 nodejs的核心模块,基本上都是stream的的实例 ...

  7. 如何打一个FatJar(uber-jar)

    如何打一个FatJar(uber-jar) FatJar也就叫做UberJar,是一种可执行的Jar包(Executable Jar).FatJar和普通的jar不同在于它包含了依赖的jar包. 1. ...

  8. 深度解析PHP数组函数array_chunk

    array_chunk是PHP中的一个数组分割函数,是将一个数组分割为多个数组块 我们可以把它理解卖豆腐的商人把一整块大豆腐切割为一个一个的小块来进行售卖 这个函数需要三个参数: 被切割的数组(必需) ...

  9. Akka(4): Routers - 智能任务分配

    Actor模式最大的优点就是每个Actor都是一个独立的任务运算器.这种模式让我们很方便地把一项大型的任务分割成若干细小任务然后分配给不同的Actor去完成.优点是在设计时可以专注实现每个Actor的 ...

  10. 兼容ie浏览器的placeholder的几种方法

    项目中遇到的问题,试了几种方法,今天整理出来,如果有不合适的地方,希望大家多多提意见. 第一种方法是:使用html新增的属性 “data-”来实现的,实现的时候,input框没有使用placehole ...