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

php $_SERVER['orig_script_name']

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-05-19 12:16:04
Original
1134 Leute haben es durchsucht

主要有一下几点:

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), '/');


     }
Nach dem Login kopieren

 
1 2  下一页
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage