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

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

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

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

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

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

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

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

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

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

Используйте 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

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

  $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 

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

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

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

Для 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']); 
 $url = "learner.com/learningphp.php?lid=1348"; $l = parse_url($url); print_r(stristr($l['path'], "/")); 

Другой способ получить только имя файла без 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' 

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

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

Лучше использовать 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); ?> 

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

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

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