Как получить имя файла без параметров?

Мне нужно найти имя файла, который я включил без параметров GET.

например: если текущий URL-адрес – http://www.mysite.com/folder/file.php?a=b&c=d , я хочу вернуть файл.php

что я нашел:

basename($_SERVER['REQUEST_URI']) 

который возвращает:

 file.php?a=b&c=d 

в моем случае: я использую имя файла в форме в разделе для моей корзины, поэтому в каждый момент, когда вы нажимаете кнопку «уменьшить количество продуктов», он добавляет параметры GET формы (productId и action) в конец URL: file.php? a = b & c = d? a = b & c = d? a = b & c = d? a = b & c = d …

Я знаю, что могу просто взорваться или что-то подобное на '?'

 $file = explode("?", basename($_SERVER['REQUEST_URI'])) 

и используйте первую часть массива, но я, кажется, что-то вспоминаю, но не могу найти код снова.

Я новичок в PHP, поэтому объяснение вашего кода будет оценено по достоинству.

Спасибо, V

Related of "Как получить имя файла без параметров?"

Вы можете использовать parse_url . В вашем случае вы можете использовать:

 $url = parse_url($url, PHP_URL_PATH); 

Чтобы получить только имя файла, вы можете сделать что-то вроде этого:

 $url = explode('/', parse_url($url, PHP_URL_PATH)); $url = end($url); 

Возможно, вы ищете $_SERVER['PHP_SELF'] .

Обратите внимание, что в начале он имеет символ «/».

Вы пробовали простое basename(__FILE__); ? Это даст вам имя файла, где находится код, так как он находится на диске.

Для получения запрошенного файла вы можете использовать basename($_SERVER['SCRIPT_NAME']); , Это всегда будет запрашивать файл, который был запрошен, а не файл, в котором содержится код.

 basename($_SERVER['SCRIPT_NAME']); 

Это сделает это.

Кроме того, всегда полезно знать некоторые заданные переменные. Следующий фрагмент в php-файле действительно полезен.

 <pre><?php print_r($_SERVER); ?></pre> 

Взгляните на некоторые другие значения в $_SERVER .

Возможно, $_SERVER["PHP_SELF"] или $_SERVER["SCRIPT_NAME"] вернет вам то, что вы хотите.

 basename(parse_url($url,PHP_URL_PATH)); 

parse_url ($ url, PHP_URL_PATH) стирает параметры. basename () получить имя файла пути.

Это самое близкое, что я нашел. Вот как я это сделал:

 $url = parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH); $url = explode('/', parse_url($url, PHP_URL_PATH)); $url = end($url); error_log($url); 

Единственный способ получить имя скрипта без параметров – сделать запрос POST