设为首页 收藏本站
查看: 523|回复: 0

[经验分享] PHP查找当前URL文件扩展名

[复制链接]

尚未签到

发表于 2015-8-26 14:15:44 | 显示全部楼层 |阅读模式
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" }


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104539-1-1.html 上篇帖子: 一个PHP日历程序 下篇帖子: php 内存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表