Лучший способ сделать это в PHP

#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() .