php $_SERVER['orig_script_name']

php中文网
发布: 2016-05-19 12:16:04
原创
1340人浏览过

主要有一下几点:

1、该框架无文档;

2、该框架源码中无注释;

3、除了那帮主线开发人员我们部门很少有人熟悉使用;

如果想使用这个框架做东西,只有一条路:看源码,先了解框架的实现原理,然后再用这个鸟玩意做东西。

FashionLabs
FashionLabs

AI服装模特、商品图,可商用,低价提升销量神器

FashionLabs 38
查看详情 FashionLabs

立即学习PHP免费学习笔记(深入)”;

当我看到一个处理request的类的时候,如下代码映入眼帘:

 static function get_base_url(){


         $filename = (isset($_SERVER['SCRIPT_FILENAME'])) ? basename($_SERVER['SCRIPT_FILENAME']) : '';


          if (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $filename) {


             $base_url = $_SERVER['ORIG_SCRIPT_NAME']; 


          } elseif (isset($_SERVER['SCRIPT_NAME']) && basename($_SERVER['SCRIPT_NAME']) === $filename) {


              $base_url = $_SERVER['SCRIPT_NAME'];


          } elseif (isset($_SERVER['PHP_SELF']) && basename($_SERVER['PHP_SELF']) === $filename) {


             $base_url = $_SERVER['PHP_SELF'];


          } else {


             $path    = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '';


             $file    = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : '';


             $segs    = explode('/', trim($file, '/'));


             $segs    = array_reverse($segs);


             $index   = 0;


            $last    = count($segs);


            $base_url = '';


             do {


                 $seg = $segs[$index];


                 $base_url = '/' . $seg . $base_url;


                 ++$index;


             } while (($last > $index) && (false !== ($pos = strpos($path, $base_url))) && (0 != $pos));


         }


         


         $request_uri = self::get_request_uri();


         if (0 === strpos($request_uri, $base_url)) {


             return self::dirname($base_url);


         }


        if (0 === strpos($request_uri, dirname($base_url))) {


             return self::dirname($base_url);


         }


         


        $truncatedrequest_uri = $request_uri;


        if (($pos = strpos($request_uri, '?')) !== false) {


             $truncatedrequest_uri = substr($request_uri, 0, $pos);


         }


         


        $basename = basename($base_url);


         if (empty($basename) || !strpos($truncatedrequest_uri, $basename)) {


             return;


        }


         


        if ((strlen($request_uri) >= strlen($base_url))


         && ((false !== ($pos = strpos($request_uri, $base_url))) && ($pos !== 0)))  {


            $base_url = substr($request_uri, 0, $pos + strlen($base_url));


         }            


        return  rtrim(self::dirname($base_url), '/');


     }
登录后复制

 
1 2  下一页
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号