Я хочу получить имя файла без каких-либо значений переменной $ _GET из URL-адреса в php?
Мой URL: http://learner.com/learningphp.php?lid=1348
Я только хочу получить learningphp.php
из URL-адреса?
Как это сделать? Пожалуйста помоги.
Я использовал basename, но он также дает все значения переменных – learntolearn.php?lid=1348
которые указаны в URL- learntolearn.php?lid=1348
.
Это должно работать:
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; ?>
В этом примере необязательные имя пользователя и пароль не выводятся!
$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 возвращает имя файла из пути