Есть ли способ маскировки строки из 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
изменить: URL-адрес выше, просто как иллюстрация, моя точка зрения
как вызвать переменную $ keyword с переменной $ bar
я попробовал с
$foo = $bar
echo $foo
это действительно повторяет ‘main-category’, но не передает реальную переменную $ foo
Спасибо.
У меня есть решение для вас, но путь, основанный на htaccsess.
Вы возьмете ключевое слово в параметрах get.
Выполните эти шаги:
1) Добавьте этот RewriteRule в файл .htaccsess.
Тест RewriteRule /(.*)/ 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/{ключевое слово} / page = 2. Вы можете изменить или удалить «тестовую» часть любезно.
С наилучшими пожеланиями .
До сих пор неясно, в каком контексте вы хотите применить другую переменную. Или почему.
В любом случае, прежде чем кто-либо упомянет о варварах, вам, вероятно, понадобится простая карта:
$map = array(
"main-category" => "stackoverflow",
'$keyword' => "bazbazbaz",
);
$bar = "main-category";
$foo = $map[$bar];
Что позволяет «переписывать» ключевые слова или переменные-заполнители в контексте приложения.