URL - 获取PHP的最后一部分

时间:2013-10-23 12:00:16

标签: php html regex url

我有我的网址:

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

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

 gallery_bg.php

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

8 个答案:

答案 0 :(得分:21)

使用以下

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

答案 1 :(得分:15)

使用basename功能

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

答案 2 :(得分:7)

 $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 

答案 3 :(得分:6)

如果是同一页面:

echo $_SERVER["REQUEST_URI"];

or

echo $_SERVER["SCRIPT_NAME"];

or 

echo $_SERVER["PHP_SELF"];

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

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

或将网址拆分为/以生成数组,并从数组中获取最后一项

$array = explode("/",$url);

$last_item_index = count($url) - 1;

echo $array[$last_item_index];

echo basename($url);

答案 4 :(得分:1)

试试这个:

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");

- 谢谢

答案 5 :(得分:1)

您可以使用上面建议的basename($ url)函数。这将从URL返回文件名。您还可以将文件扩展名作为此函数的第二个参数提供,例如basename($ url,&#39; .jpg&#39;),然后将提供没有扩展名的文件名。

例如:

&#13;
&#13;
$url = "https://i0.com/images/test.jpg"

then echo basename($url) will print test.jpg

and echo basename($url,".jpg") will print test
&#13;
&#13;
&#13;

答案 6 :(得分:0)

$url  = $_SERVER["PHP_SELF"];
$path = explode("/", $url); 
$last = end($path);

答案 7 :(得分:0)

    $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中,接受的解决方案是给我一个错误,即只有变量才允许爆炸,所以这对我有用。