zoukankan      html  css  js  c++  java
  • PHP查找当前URL文件扩展名

     1 <html>
     2     <body>
     3         <?php
     4             $paths[] = $_SERVER['REQUEST_URI'];    //$_SERVER['REQUEST_URI']获取当前请求URI,不包括域名
     5             $paths[] = $_SERVER['SCRIPT_NAME'];    //$_SERVER['SCRIPT_NAME']获取当前执行脚本的名称,该路径从document_root开始
     6             $paths[] = $_SERVER['SCRIPT_FILENAME'];    //$_SERVER['SCRIPT_FILENAME']当前执行脚本的绝对路径名
     7             $paths[] = $_SERVER['PHP_SELF'];    //$_SERVER['PHP_SELF']获取当前正在执行脚本的文件名,路径从document_root开始,与$_SERVER['SCRIPT_NAME']不同在于如果使用php-cgi执行脚本,则$_SERVER['SCRIPT_NAME']显示的是php-cgi,而$_SERVER['PHP_SELF']显示的是脚本文件,如:index.php
     8             $paths[] = __FILE__;    //获取文件的完整绝对路径和文件名
     9             
    10             foreach($paths as $path) {
    11                 $file_names[] = basename($path);    //获取路径中的文件名部分,皆为index.php,下面程序使用$file_names[0];    
    12             }
    13             
    14             #第一种方法,使用explode
    15             $arr = explode('.', $file_names[0]);
    16             $extend_names[] = end($arr);
    17             
    18             #第二种方法,使用strpos和substr
    19             $extend_names[] = substr($file_names[0], strpos($file_names[0], '.') + 1);
    20             
    21             #第三种方法,使用正则表达式
    22             $pattern = '/.+\.(.+)/';
    23             preg_match($pattern, $file_names[0], $matches);
    24             $extend_names[] = end($matches);
    25             
    26             var_dump($paths);
    27             echo '<br>';
    28             var_dump($file_names);
    29             echo '<br>';
    30             var_dump($extend_names);
    31             echo '<br>';
    32         ?>
    33     </body>
    34 </html>

    访问URL为: www.local.com/sub/index.php

    页面输出

    array(5) { [0]=> string(14) "/sub/index.php" [1]=> string(14) "/sub/index.php" [2]=> string(20) "D:/www/sub/index.php" [3]=> string(14) "/sub/index.php" [4]=> string(20) "D:\www\sub\index.php" } 
    array(5) { [0]=> string(9) "index.php" [1]=> string(9) "index.php" [2]=> string(9) "index.php" [3]=> string(9) "index.php" [4]=> string(9) "index.php" } 
    array(3) { [0]=> string(3) "php" [1]=> string(3) "php" [2]=> string(3) "php" } 

  • 相关阅读:
    Java中数据结构对应mysql数据类型
    pom.xml设置字符编码
    java.lang.IllegalStateException: Service id not legal hostname (/test-gw-aqa)
    org.springframework.context.ApplicationContextException: Unable to start web server; nested exceptio
    nacos的三种部署方式
    o.s.c.a.n.c.NacosPropertySourceBuilder : get data from Nacos error,dataId:application-dev.yaml
    java使用split注意事项
    《非暴力沟通》之读书心得
    js存储token
    SpringCloudGateWay之网关跨域问题解决
  • 原文地址:https://www.cnblogs.com/zemliu/p/2482073.html
Copyright © 2011-2022 走看看