#php
#php
Вопрос:
В настоящее время у меня установлен файл htaccess для удаления типа файла, поэтому
www.example.com/home.php
стало бы,
www.example.com/home
Мне нужно сравнить URL-адрес с тем, который я сохранил в базе данных, я делаю это с помощью,
if ($_SERVER['QUERY_STRING']) {
$pageURL = str_replace('.php', '?', 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING']);
}
else {
$pageURL = substr('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'], 0, -4);
}
Когда я сохраняю URL-адрес в базе данных, он сохраняется как текущий URL-адрес страницы после того, как файл htaccess удалил .php, он вставляется с помощью jquery ajax.
Когда я начинаю сравнивать, мне нужно, чтобы это соответствовало php, поскольку php не учитывает изменения htaccess.
Есть ли лучший способ сделать это?
Комментарии:
1. Будьте понятнее. Что представляет собой успех / неудачу этого алгоритма? Как нам узнать, что «лучше», когда мы понятия не имеем о ваших требованиях?
2. Я не вижу .htaccess, базы данных или даже реального сравнения. Что мы должны здесь улучшить?
Ответ №1:
Вы можете сделать:
$pageURL = rtrim($_SERVER['REQUEST_URI'], '.php');
Это приведет к .php
удалению вашего URL-адреса всякий раз, когда он появляется в конце URL-адреса.
Комментарии:
1. Да, но когда есть строка запроса, .php находится посередине, это лучше, хотя спасибо.
Ответ №2:
Посмотрите на parse_url()
функцию. Вы можете использовать его для разбора URL на части, а затем изменить компонент path (например, удалить .php). Затем вы можете перестроить URL из этих частей, используя http_build_url()
функцию.
Ответ №3:
Мне кажется, что лучше всего было бы объединить приведенное выше предложение Джона об использовании parse_url()
вместе с использованием pathinfo() — обрезка, усечение с помощью substr и т. Д. Не Всегда Так элегантно, Как pathinfo()
.