PHP–获取文件扩展名、网站计数器、截取字符串、跳转菜单

获取文件扩展名

方法一:

 <?php
 function fun1($filename)
 {
 $return=””;
 $p=strrpos($filename, “.”);//第一参数是要查找的范围,第二个是查找的内容,第三个是开始搜索的位置(可省略)
 if($p)
  $return=substr($filename, $p+1, strlen($filename) – $p);
  //第一个参数是要截取的字符串,第二个开始的位置,第三个是截取长度(正数是从开始位置,负数是从末尾开始)
  return $return;
 }
 eg:
 $filename1=”sadafadasd52.23542352352352.2342352.jpg”;
 $file=fun1($filename1);
 echo $file;
 ?>

//方法二

<?php
 function fun2($filename)
 {
  $arr=pathinfo($filename);
 //pathinfo()返回一个数组例如:$dirfilename=”/www/htdocs/index.html”;
 //$path_parts = pathinfo($dirfilename);
 //echo $path_parts[“dirname”].”<br />”;
 //echo $path_parts[“basename”].”<br />”;
 //echo $path_parts[“extension”].”<br />”;   /www/htdocs    index.html     html
 $arr=strtolower($arr[“extension”]);//将字符串转换成小写字符
  return $arr;
 }
 $filename1=”sadafadasd52.23542352352352.2342352.jpg”;
 $file=fun2($filename1);
 echo $file;
?>
<?php
//方法三
 function fun3($filename)
 {
 $arr=explode(“.” , $filename);//将第二个参数以第一个参数分割成数组,第三个参数可以省略是数组的最大值
 $num=count($arr)-1;//计算被分隔成几部分然后计算出最后一部分
 return $arr[$num];
 }
 $filename1=”sadafadasd52.23542352352352.2342352.jpg”;
 $file=fun3($filename1);
 echo $file;
 ?>
<?php
 session_start();
 //Session版本,使用时先建立count/sessioncount.txt文件
 $pt=”count/”;
 $file=$pt.”sessioncount.txt”;
 $fp=fopen($file,”r+”);
 $count=fgets($fp);
 if($_SESSION[“temp”]==””)
 {
  $count=$count+1;
 }
 rewind($fp);//rewind — 倒回文件指针的位置
 fwrite($fp,$count);
 fclose($fp);
 $_SESSION[“temp”]=1;
 ?>
 <?php
 //cookie版本网站计数器
 $pt=”count/”;
 $file=$pt.”cookiecount.txt”;
 $fp=fopen($file,”r+”);
 $count=fgets($fp);
 if(empty($_COOKIE[‘count’]))
 {
  setcookie(“count”,”count”);//cookies的值,保存在客户端
  $count=$count+1;
  rewind($fp);
  fwrite($fp,$count);
  fclose($fp);
 }
 ?>
//截取字符串
 function csubstr($str_cut,$length = 30){ 
 if (strlen($str_cut) > $length){
   for($i=0; $i < $length; $i++)
    if (ord($str_cut[$i]) > 128) $i++;
   $str_cut = substr($str_cut,0,$i) . “…”;
 }
 return $str_cut;
 }

例子:

echo csubstr(“字符串”,长度)
function wordscut($string, $length ,$sss=0)
 {
 if(strlen($string) > $length)
 {
 if($sss)
 {
 $length=$length – 3;
 $addstr=”……”;
 }
 for($i = 0; $i < $length; $i++) {
 if(ord($string[$i]) > 127) {
 $wordscut .= $string[$i].$string[$i + 1];
 $i++;
 } else {
 $wordscut .= $string[$i];
 }
 }
 return $wordscut.$addstr;
 }
 return $string;
 }

例子:

echo wordscut(“字符串”,12,”……”)//第二个参数是长度,第三个是截取最后显示内容
//gb2312
 <?php
 function substrgb($in,$num){
 $pos=0;
 $out=””;
 while($pos<strlen(trim($in))){
 $c=substr(trim($in),$pos,1);
 if($c==”\n”) break;
 if(ord($c)>128){
 $out.=$c;
 $pos++;
 $c=substr(trim($in),$pos,1);
 $out.=$c;
 }else{
 $out.=$c;
 }
 $pos++;
 if($pos>=$num) {
 $out.=”…”;
 break;
 }
 }
 return $out;
 }?>
<?php
//uft8
 function Word_cut($str,$length,$position=0,$type=1){
   $startPos = strlen($str);
   $startByte = 0;
   $endPos = strlen($str);
   $count = 0;
   for($i=0; $i<strlen($str); $i++){
    if($count>=$position && $startPos>$i){
     $startPos = $i;
     $startByte = $count;
    }
    if(($count-$startByte) >= $length) {
     $endPos = $i;
     break;
    }   
    $value = ord($str[$i]);
    if($value > 127){
     $count++;
     if($value>=192 && $value<=223) $i++;
     elseif($value>=224 && $value<=239) $i = $i + 2;
     elseif($value>=240 && $value<=247) $i = $i + 3;
     else return self::raiseError(“\”$str\” Not a UTF-8 compatible string”, 0, __CLASS__, __METHOD__, __FILE__, __LINE__);
    }
    $count++;
  }
   if($type==1 && ($endPos-6)>$length){
    return substr($str, $startPos, $endPos-$startPos).”…”;
        }else{
    return substr($str, $startPos, $endPos-$startPos);    
     }
 
  }
?>
<!–选择跳转–>
 <select name=”tiaozhuan” onChange=”tiaozhuan(this)”>
 <option value=’http://www.baidu.com/’>PHP100</option> <option value=’http://www.baidu.com/’>PHP100</option>
 </select>
 <script language=”javascript”>
 <!–
 function tiaozhuan(_this){
         top.location.href=_this.value;
 }
 //–>
 </script>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Danny的专栏

【MyBatis框架点滴】——MyBatis输入映射

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

11210
来自专栏余林丰

MyBatis之ObjectFactory

关于在MyBatis中的ObjectFactory有什么用,在官方文档中有这样的描述(大多数网上的博客都是直接引用这一描述):MyBatis 每次创建结果对象的...

27880
来自专栏数据结构与算法

洛谷P1200 [USACO1.1]你的飞碟在这儿

题目描述 众所周知,在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠诚支持者。不幸的是,他们的飞碟每次出行都只能带上一组支持者。因此,他们要用一种聪...

34140
来自专栏从流域到海域

《笨办法学Python》 第39课手记

《笨办法学Python》 第39课手记 本节课讲列表的操作,用来做练习的代码中出现了之前用到过的几个函数,是一节复习课。你需要记住它们。 原代码如下: ten_...

21470
来自专栏图形学与OpenGL

WebGL三角形平移变换(矩阵方式)

29910
来自专栏Java开发

mybatis foreach多次遍历问题

使用MyBatis foreach循环的时候出现了个问题,第一次循环使用的变量 第二次再次循环使用的时候 出现了报错

40320
来自专栏一枝花算不算浪漫

[Java Collection]List分组之简单应用.

34350
来自专栏阿杜的世界

【译】Java 8的新特性—终极版1. 简介2. Java语言的新特性3. Java编译器的新特性4. Java官方库的新特性5. 新的Java工具6. JVM的新特性7. 结论8. 参考资料

前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,...

12240
来自专栏HansBug's Lab

1901: Zju2112 Dynamic Rankings

1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MB Submit: ...

28560
来自专栏码匠的流水账

聊聊storm的AggregateProcessor的execute及finishBatch方法

本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法

7910

扫码关注云+社区

领取腾讯云代金券