Мне нужно найти имя файла, который я включил без параметров 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
Вы можете использовать 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