Подтвердить что ты не робот

Получить только имя файла из url в php без каких-либо значений переменных, которые существуют в URL-адресе

Я хочу получить имя файла без каких-либо значений переменной $_GET из URL-адреса в php?

Мой url http://learner.com/learningphp.php?lid=1348

Я хочу только извлечь learningphp.php из URL-адреса?

Как это сделать? Пожалуйста, помогите.

Я использовал basename, но он также дает все значения переменных - learntolearn.php?lid=1348, которые находятся в URL-адресе.

4b9b3361

Ответ 1

Это должно работать:

echo basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);

Но будьте осторожны с вредоносными компонентами вашего URL.

Ответ 2

Используйте parse_url(), как сказал Пекка:

<?php
$url = 'http://www.example.com/search.php?arg1=arg2';

$parts = parse_url($url);

$str = $parts['scheme'].'://'.$parts['host'].$parts['path'];

echo $str;
?>

http://codepad.org/NBBf4yTB

В этом примере необязательное имя пользователя и пароль не выводятся!

Ответ 3

  $url = 'http://www.nepaltraveldoor.com/images/trekking/nepal/annapurna-region/Annapurna-region-trekking.jpg';
        $file = file_get_contents($url); // to get file
        $name = basename($url); // to get file name
        $ext = pathinfo($url, PATHINFO_EXTENSION); // to get extension
        $name2 =pathinfo($url, PATHINFO_FILENAME); //file name without extension

Ответ 4

Вы можете использовать

$directoryURI =basename($_SERVER['SCRIPT_NAME']);

echo $directoryURI;

Ответ 5

Попробуйте использовать следующий код:

Для PHP 5.4.0 и выше:

$filename = basename(parse_url('http://learner.com/learningphp.php?lid=1348')['path']);

Для версии PHP < 5.4.0

$parsed = parse_url('http://learner.com/learningphp.php?lid=1348');
$filename = basename($parsed['path']);

Ответ 6

$url = "learner.com/learningphp.php?lid=1348";
$l = parse_url($url);
print_r(stristr($l['path'], "/"));

Ответ 7

Другой способ получить только имя файла без querystring - использовать функции parse_url и basename:

$parts = parse_url("http://example.com/foo/bar/baz/file.php?a=b&c=d");
$filename = basename($parts["path"]); // this will return 'file.php'

Ответ 8

Используйте эту функцию:

function getScriptName()
{
    $filename = baseName($_SERVER['REQUEST_URI']);
    $ipos = strpos($filename, "?");
    if ( !($ipos === false) )   $filename = substr($filename, 0, $ipos);
    return $filename;
}

Ответ 9

Лучше использовать parse_url для извлечения только пути, а затем получения только имени файла с помощью basename. Таким образом, мы также избегаем параметров запроса.

<?php
$url = 'http://www.example.com/image.jpg?q=6574&t=987'
$path = parse_url($url, PHP_URL_PATH);
echo basename($path);
?>

Как-то похоже на ответ султана, за исключением того, что я использую параметр component parse_url, чтобы получить только путь.

Ответ 10

$filename = pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_FILENAME ); 

Используйте parse_url для извлечения пути из URL-адреса, затем pathinfo возвращает имя файла из пути