PHP маскирующая строка с другой строкой - PullRequest
0 голосов
/ 02 октября 2018

Есть ли способ маскировки строки из URL с другой строкой из переменной?У меня есть эти переменные

$keyword = 'stackoverflow';
$foo = $keyword;
$bar = 'main-category';

, которые я хочу показать в браузере: http://example.com/main-category/page=2, но по этому URL будет сделан запрос к: http://example.com/$keyword/page=2

Пожалуйста, не говорите мнеэто может быть достигнуто с помощью htaccess, потому что ключевое слово динамически меняется, а также это на стороне клиента, не все пользователи могут изменять htaccess / nginx.conf

edit: приведенный выше URL-адрес является просто иллюстрацией, мойДело в том, как вызвать переменную $ keyword с переменной $ bar

Я попробовал с

$foo = $bar
echo $foo

это действительно повторяет 'main-category', но она не передает действительную переменную $ foo

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

До сих пор неясно, в каком контексте вы хотите применить другую переменную.Или почему.

В любом случае, прежде чем кто-либо упомянет о varvars, вам, вероятно, понадобится простая карта:

$map = array(
     "main-category" => "stackoverflow",
     '$keyword' => "bazbazbaz",
);
$bar = "main-category";
$foo = $map[$bar];

, которая позволяет «переписывать» ключевые слова или переменные-заполнители в контексте приложения.

0 голосов
/ 02 октября 2018

У меня есть решение для вас, но путь основан на htaccsess.

Вы возьмете ключевое слово при получении параметров.

Выполните следующие действия:

1) Добавитьэтот RewriteRule в файл .htaccsess

RewriteRule test /(.*)/ page = 2? $ test2.php? ключевое слово = $ 1 [L]

2) Создайте test2.php в своей главнойпапка (вы можете свободно называть файл, обычно разработчики используют index.php для обработки всех таких запросов)

И поместите эти коды на страницу

$keyword = htmlscpecialchars($_GET['keyword']);

echo "The keyword is "$keyword;

Таким образом, вы получите ключевое слово,Не забывайте, что ваш URL будет http://example.com/test/{keyword}/page=2.Вы можете изменить или удалить «тестовую» часть любезно.

С уважением.

...