web-dev-qa-db-ja.com

URL-PHP

私は私のURLを持っています:

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

そして私はURLの最後の部分が欲しい:

 gallery_bg.php

しかし、静的にリンクしたくありません。つまり、vistitarのページごとに、URLの最後の部分を取得します。

14
Paulo César

以下を使用

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

Basename関数を使用する

echo basename("http://domain/fotografo/admin/gallery_bg.php");
19
jaydeep namera
 $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 
7
Deepu

同じページの場合:

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);
6
Salim

上記のように、basename($ url)関数を使用できます。これは、URLからファイル名を返します。また、basename($ url、 '.jpg')のように、この関数の2番目の引数としてファイル拡張子を指定すると、拡張子のないファイル名が提供されます。

例えば:

$url = "https://i0.com/images/test.jpg"

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

and echo basename($url,".jpg") will print test
4
Arvind Kala

これを試して:

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

-ありがとう

1
Anand Solanki
    $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では、受け入れられた解決策は、変数のみが分解で許可されているため、これが私にとってはうまくいくというエラーを私に与えています。

0
iniravpatel
$url  = $_SERVER["PHP_SELF"];
$path = explode("/", $url); 
$last = end($path);
0
Nil'z