【问题标题】:URL - Get last part in PHPURL - 获取 PHP 的最后一部分
【发布时间】:2013-11-01 16:38:36
【问题描述】:

我有我的网址:

http://domain/fotografo/admin/gallery_bg.php

我想要网址的最后一部分:

 gallery_bg.php

但是,我不想链接静态的,即对于每个访问的页面,我想获取 url 的最后部分

【问题讨论】:

  • 请展示你的方法
  • 到目前为止你尝试了什么?

标签: php html regex url


【解决方案1】:

使用关注

<?php
    $link = $_SERVER['PHP_SELF'];
    $link_array = explode('/',$link);
    echo $page = end($link_array);
?>

【讨论】:

    【解决方案2】:

    使用basename函数

    echo basename("http://domain/fotografo/admin/gallery_bg.php");
    

    【讨论】:

    • 这个非常高效快速
    【解决方案3】:

    如果是同一页:

    echo $_SERVER["REQUEST_URI"];
    
    or
    
    echo $_SERVER["SCRIPT_NAME"];
    
    or 
    
    echo $_SERVER["PHP_SELF"];
    

    在每种情况下都会出现一个反斜杠 (/gallery_bg.php)。您可以将其修剪为

    echo trim($_SERVER["REQUEST_URI"],"/");
    

    或者用/拆分url来做一个数组,从数组中获取最后一项

    $array = explode("/",$url);
    
    $last_item_index = count($url) - 1;
    
    echo $array[$last_item_index];
    

    echo basename($url);
    

    【讨论】:

      【解决方案4】:
       $url = "http://domain/fotografo/admin/gallery_bg.php";
       $keys = parse_url($url); // parse the url
       $path = explode("/", $keys['path']); // splitting the path
       $last = end($path); // get the value of the last element 
      

      【讨论】:

        【解决方案5】:

        您可以按照上面的建议使用 basename($url) 函数。这会从 url 返回文件名。您还可以提供文件扩展名作为此函数的第二个参数,例如 basename($url, '.jpg'),然后将提供不带扩展名的文件名。

        例如:

        $url = "https://i0.com/images/test.jpg"
        
        then echo basename($url) will print test.jpg
        
        and echo basename($url,".jpg") will print test

        【讨论】:

          【解决方案6】:
          $url  = $_SERVER["PHP_SELF"];
          $path = explode("/", $url); 
          $last = end($path);
          

          【讨论】:

            【解决方案7】:

            试试这个:

            Here you have 2 options.
            
            1. Using explode function.
            
            $filename = end(explode('/', 'http://domain/fotografo/admin/gallery_bg.php'));
            
            2. Use basename function.
            
            $filename = basename("http://domain/fotografo/admin/gallery_bg.php");
            

            - 谢谢

            【讨论】:

              【解决方案8】:
                  $basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
                  $uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
                  if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
                  $url = trim($uri, '/');
              

              在 PHP 7 中,公认的解决方案给了我一个错误,即在爆炸中只允许使用变量,所以这对我有用。

              【讨论】:

                猜你喜欢
                • 2011-11-15
                • 1970-01-01
                • 2013-06-14
                • 2019-04-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多