专栏首页我的博客PHP–获取文件扩展名、网站计数器、截取字符串、跳转菜单

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 条评论
登录 后参与评论

相关文章

  • Apache开启浏览器缓存、开启gizp

    ExpiresActive On ExpiresDefault "access plus 12 month" ExpiresByType text/html "...

    苦咖啡
  • 安卓中使用圆角button

    1、在drawable中建立btn_blue.xml 内容如下: <?xml version=”1.0″ encoding=”utf-8″?> <shap...

    苦咖啡
  • filter_input()详解,$_GET,$_POST,$_ENV,$_SERVER,$_SESSION,$_REQUEST

    filter_input() 函数从脚本外部获取输入,并进行过滤。 本函数用于对来自非安全来源的变量进行验证,比如用户的输入。 本函数可从各种来源获取输入: I...

    苦咖啡
  • jQuery原理(原型上的属性、方法)

    jQuery存在两个each方法,一个类方法,一个对象方法。当实现类方法时,只需要让对象方法调用类方法即可实现。

    Dreamy.TZK
  • Java工具集-数学(数字工具类)

    cwl_java
  • Q9 Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space. 解题思路:...

    echobingo
  • vue中computed计算属性传入参数

    做一个简单的功能,使用计算属性判断传入的字符超过了20就去掉后面的字符在尾部添加。。。

    acoolgiser
  • 如果有一个这样的需求,您会如何设计?考考你的设计能力:)

        一个给客户定制开发的项目接近尾声了,已经开始上限测试,写程序的时候一直在思考,这个项目怎么这么乱呢,到底差在哪里了?由于对OO不熟悉,所以也没敢使用面向...

    用户1174620
  • CodeForces 957A Tritonic Iridescence

           题意是给一个长度为n的字符串,如果有两个相邻的字符相等就输出No,把字符串中的?改成CMY,如果有两种及两种以上的改法就输出Yes。

    Ch_Zaqdt
  • 11个 Javascript 小技巧帮你提升代码质量

    如果一个函数体内有一些条件分支语句,而这些条件分支语句内部散布了一些重复的代码,那么就有必要进行合并去重工作。

    落落落洛克

扫码关注云+社区

领取腾讯云代金券