Heim >Backend-Entwicklung >PHP-Tutorial >php $_SERVER['orig_script_name']

php $_SERVER['orig_script_name']

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-05-19 12:16:041137Durchsuche

主要有一下几点:

1、该框架无文档;

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

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

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

当我看到一个处理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  下一页
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn